文章目录
- 顺序结构
- 分支结构
- 一:if语句
- ①: if使用
- ③:if中注意的关于{}
- 二. switch分支判断语句
- ①:概念:判断一个变量与一系列的值中某个值是否相等,每个值是一个分支
- ②:语法格式
- ③:规则
- ④:代码案例
- 循环结构
- 一.while语句 先判断再执行
- ①:语法格式
- ②:代码案例
- 二.do....while语句 先执行再判断
- ①:语法格式
- ②:代码案例
- 三.for循环
- ①:语法格式
- ②:格式解释
- 四.java中引入数组的增强for语句
- ①:语法格式
- ②: 语法解释
- ③:代码案例
顺序结构
属性结构是最简单,最常用的程序结构,只要按照解决问题的步骤写出相应的语句就行,他的执行顺序是从上到下
依次执行
加色
分支结构
一:if语句
①: if使用
1. 单独使用if, 多个if块都会进入判断。如果满足,都会分别执行。
public class TestWork12 {
public static void main(String[] args) {
int a = 1;
int b = 1;
int c= 1;
int d = 1;
if (a == 1){
System.out.println("第一个if被执行了");
}
if (b == 1){
System.out.println("第二个if被执行了");
}
if (c == 1){
System.out.println("第三个if被执行了");
}
if (d== 1){
System.out.println("第四个if被执行了");
}
}
}
运行结果:
第一个if被执行了
第二个if被执行了
第三个if被执行了
第四个if被执行了
2. if…else , 这个作为一个整体, 满足条件执行if, 不满足执行else.
import java.util.Scanner;
public class TestWork1 {
public static void main(String[] args) {
// 定义李四的成绩
int lisiScore = 80;
//控制台输入李四的成绩
Scanner input = new Scanner(System.in);
System.out.println("请输入张三的成绩:");
// 接收控制台输入李四的成绩
int zhangsanSocore = input.nextInt();
// 取变量真假判断
boolean isBigger = zhangsanSocore>lisiScore;
if (isBigger){
System.out.println("张三的成绩比李四的成绩高");
}else {
System.out.println("张三的成绩没有李四高");
}
}
}
运行结果:
请输入张三的成绩:
90
张三的成绩比李四的成绩高
3. if else if else if … else 多个条件的判断,但整体只会执行一个代码块,执行完就跳出整个if else
import java.util.Scanner;
public class day2 {
public static void main(String[] args) {
// 输入赵本山的考试成绩
Scanner input = new Scanner(System.in);
System.out.println("请输入赵本山的考试成绩:");
int score = input.nextInt();
if (score==100){
System.out.println("爸爸买辆车");
}else if (score>=90){
System.out.println("妈妈买MP4");
}else if (score>=60){
System.out.println("妈妈给他买本参考书");
}else {
System.out.println("什么都不买");
}
}
}
运行结果:
请输入赵本山的考试成绩:
50
什么都不买
③:if中注意的关于{}
- 控制语句中,比如if,循环等,如果省略花括号{},那么紧跟在后面的第一条代码才算该控制语句中的。
- 一般不建议省略,影响代码的可读性。
二. switch分支判断语句
①:概念:判断一个变量与一系列的值中某个值是否相等,每个值是一个分支
②:语法格式
switch (变量expression) {
case value1:
语句
break; //可选
case value2:
语句
break; //可选
case value3:
语句
break; //可选
.
.
. //可以有任意数量的case语句
default: //可选
语句
③:规则
- switch不能像if那要判断任意数据类型,变量只支持int(包含以下, short,byte),char,enum(1.5jdk之后枚举类型),String(1.7jdk之后).
- switch可以有多个case语句,每个case语句后面要跟一个比较的值和冒号
- case语句中的值数据类型必须要与变量的数据类型相同,只能是常量或者字面量且在多个case语句中值唯一不能冲突。
- 由上到下用switch中的表达式和值进行比较,如果匹配成功,就执行case后的语句,在执行到
- . break, 打断,用于switch和循环中,遇到switch语句时,switch语句结束,程序跳到switch语句后面的语句执行,case语句不必须包括break语句。
- switch如果不写break, 一旦进入了某个控制块, 会继续往下穿透,直到有break为止。
- default的位置可以放在switch任意位置, 但是只能有一个default。
④:代码案例
- 变量不支持上述其他的数据类型
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
float a = 2.2f;
switch (a){
case 2.2:
break;
case 2.3:
break;
case 2.4:
break;
case 2.5:
break;
default:
System.out.println("程序结束");
}
}
}
Error:(6, 16) java: 不兼容的类型: 从float转换到int可能会有损失
6.switch如果不写break, 一旦进入了某个控制块, 会继续往下穿透,直到有break为止。
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
int a = 5;
switch (a){
case 1:
System.out.println("case1被执行了");
case 5:
System.out.println("case2被执行了");
case 3:
System.out.println("case3被执行了");
case 2:
System.out.println("case4被执行了");
default:
System.out.println("无匹配");
}
System.out.println("switch代码块结束了");
}
}
case2被执行了
case3被执行了
case4被执行了
无匹配
switch代码块结束了
package com.seecen.basic.day2;
//
public class TestWork9 {
public static void main(String[] args) {
int num =2;
switch (num){
case 1:
System.out.println("进入case1");
break;
case 2:
System.out.println("进入了case2");
// break;
default:
System.out.println("进入了default");
case 3:
System.out.println("进入了case3");
// break;
// default:
// System.out.println("进入了default");
//
}
System.out.println("swith结束。。。");
}
}
进入了case2
进入了default
进入了case3
swith结束。。。
循环结构
一.while语句 先判断再执行
概念:只要布尔表达式是true,循环体会一直执行下去。
①:语法格式
while(布尔表达){
语句//循环内容
}
②:代码案例
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
int i = 1;
while (true) {
System.out.printf("第%s循环\n",i);
if (i ==5){
break;
}
i++;
}
}
}
第1循环
第2循环
第3循环
第4循环
第5循环
二.do…while语句 先执行再判断
概念:即使不满足条件也至少执行一次,直到布尔表达式为false;
①:语法格式
do{
语句
}while(布尔表达式)
②:代码案例
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
int i =1;
do {
System.out.printf("第%s循环\n",i);
i++;
}while (i<=7);
}
}
第1循环
第2循环
第3循环
第4循环
第5循环
第6循环
第7循环
三.for循环
①:语法格式
for(初始化表达式;循环条件;循环控制变量){
语句
}
- 声明区域(初始化表达式) 2. 判断区域(循环条件) 3. 值变化区域 (循环控制变量) 4. 具体执行代码的区域(语句)
②:格式解释
1.如果初始表达式为1 循环条件是2,循环控制变量是3 语句是4
执行顺序是1>2>4>3>2>4>3>2>4>3…
每执行一次循环,更新循环控制变量
2. 初始化表达式和循环控制条件都可以省略:
此时的循环只有循环条件,此时的循环关系相当于while循环while(){}
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
int i = 0;
for (; i <3 ; ) {
System.out.println("hh");
}
}
}
四.java中引入数组的增强for语句
①:语法格式
for(声明语句:表达式){
语句
}
②: 语法解释
声明语句:声明新的局部变量,此变量的类型必须与数组的变量类型相同,作用域在循环语句块内,值和数组元素的值相等
表达式:访问的数组名,或者返回值为数组的方法
③:代码案例
package com.seecen.basic.day2;
public class TestWork13 {
public static void main(String[] args) {
/**遍历数字*/
// 定义一个数组
int[]numbers ={1,3,7,3,6};
// 遍历数组中所有的值 声明:访问数组表达式
for (int x:numbers){
// 输出x
System.out.print(x);
// 中间用,隔开
System.out.print(",");
}
System.out.println("\n");
/** 还可以遍历字符串*/
String [] names={"jims","hhe","heh","zhang"};
for (String x:names){
System.out.print(x);
System.out.print(",");
}
}
}
1,3,7,3,6,
jims,hhe,heh,zhang,