Java 逻辑控制 Java 逻辑控制全面详解
零零星星枫叶梦 人气:01 顺序结构
顺序结构比较简单,就是代码一行一行的执行,本节之前写的所有代码都是顺序结构。
例如:
public static void main(String[] args) { int a=10; System.out.println(a); System.out.println("hhhh"); double f=10.732; System.out.println(f);
2 分支结构
2.1 if语句
基本语法形式1:
if(布尔表达式){
//条件满足时的要执行的语句
}
示例代码1:
public static void main(String[] args) { int a=10; int b=20; if(a<b){ System.out.println(a);//a是10 b是20 a<b条件成立执行该语句 } if(a>b){ System.out.println(b);//a是10 b是20 a>b条件不成立不执行该语句 }
基本语法形式2:
if(布尔表达式){
//条件成立是执行的语句
}
else{
//条件不成立时执行的语句
}
示例代码2:
public static void main(String[] args) { int a=10; int b=20; if(a>b){ System.out.println(a);//a是10 b是20 a>b条件不成立不执行该语句 } else{ System.out.println(b);//a是10 b是20 a>b条件成立执行该语句 } }
基本语法形式3:
if(布尔表达式1){
//表达式1为true,执行的代码
}
else if(布尔表达式2){
//表达式2为true,执行的代码
}
else{
//表达式1和表达式2都为falses,执行的代码
}
示例代码3:
public static void main(String[] args) { int a=10; int b=10; if(a>b){ System.out.println(a);//表达式1不成立,该语句不执行 } else if(b>a){ System.out.println(b);//表达式2不成立。该语句不执行 } else{ System.out.print("a=b=");//表达式1和表达式2都不成立,该语句执行 System.out.println(a);//注意:表达式成立时执行的语句可以是多条 } }
注意事项1:
if语句可以嵌套使用,当if(布尔表达式)中的表达式成立时,就会执行对应的语句块 ,在这个对应的语句块中也可以使用if语句
例如:找出三个数中最大的数
public static void main(String[] args) { int a=50; int b=70; int c=20; System.out.print("最大的数是"); if(a>b){ //a>b不成立,所以不执行改语句块 if(c>a){ System.out.println(c); } else{ System.out.println(a); } } else{ //a>b不成立,所以执行该语句块 if(c>b){ System.out.println(c);//c>b不成立,不执行该语句 } else{ System.out.println(b);//c>b不成立,所以执行改语句 } } }
注意事项2:
if语句中的布尔表达式成立时,会执行if所对应的语句块。如果不加“{}”时,就会执行紧随其后的一条语句
例如:
public static void main(String[] args) { int a=10; int b=20; if(a>b) System.out.println(a);//此时if条件不成立,所以不会执行这条语句 System.out.println(b);//虽然if条件不成立,但是这条语句已经超出了if //语句块,所以这条语句还会执行 }
2.2 switch语句
基本语法格式
switch ( 整数 | 枚举 | 字符 | 字符串 ){
case 内容 1 : {
内容满足时执行语句 ;
[ break ;]
}
case 内容 2 : {
内容满足时执行语句 ;
[ break ;]
}
...
default :{
内容都不满足时执行语句 ;
[ break ;]
}
示例代码:
public static void main(String[] args) { int day=5; switch (day){ case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期天"); break; default: System.out.println("输入错误"); break; } }
根据 switch 中值的不同 , 会执行对应的 case 语句 . 遇到 break 就会结束该 case 语句 . 如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句 . 我们建议一个 switch 语句最好都要带上 default.
3 循环结构
3.1while循环
基本语法格式:
while(布尔表达式){
//要执行的语句块;
}
当布尔表达式为true,循环执行要执行的语句块,否则结束循环。
示例代码:输出1~10
public static void main(String[] args) { int i=1; while(i<=10){ System.out.println(i); i++; } }
注意事项:
- 1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { }
- 2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
- 3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。
3.2 break语句
break 的功能是让循环提前结束 .
例如:找出1~10中第一个3的倍数
public static void main(String[] args) { int i=1; while(i<=10){ if(i%3==0){ System.out.println(i); break;//遇到break语句,循环结束 } i++; } }
3.3 continue语句
continue 的功能是跳过这次循环 , 立即进入下次循环 .
例如:找出1~10之间所有的偶数
public static void main(String[] args) { int i=1; while(i<=10){ if(i%2!=0){ i++; continue;//遇到continue语句,会直接进入下一次循环,不会执行后面的语句 } System.out.println(i); i++; } }
3.4 for循环
基本语法格式:
for(表达式1;布尔表达式2;表达式3){
//循执行的语句块
}
for循环执行的顺序是:
首次循环:首先执行表达式1,再执行布尔表达式2,然后执行循环体;最后执行表达式3。
其余循环: 首先执行布尔表达式2,然后执行循环体,最后执行表达式3。
结束循环: 布尔表达式的值为false.
示例代码:
输出1~10之间的所有数
public static void main(String[] args) { for (int i =1; i <=10 ; i++) { System.out.println(i); } }
注意事项:
- 1:break和continue对for循环同样适用。
- 2:和 if 类似 , for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句 . 建议还是加上 { }
- 3: 和 if 类似 , for 后面的 { 建议和 while 写在同一行 .
- 4:和 if 类似 , for 后面不要多写 分号 , 否则可能导致循环不能正确执行
3.5 do while 循环
基本语法格式:
do{
//循环执行的语句
}while(布尔表达式);
do whiie 循环的执行顺序
首先执行循环语句,然后再判断布尔表达式是后为true.
因此,无论布尔表达式的值是否是true,第一次循环都会执行。
示例代码1:
打印1~10
public static void main(String[] args) { int i=1; do{ System.out.println(i); i++; }while (i<=10); }
示例代码2:
演示布尔表达式不成立,循环语句执行一次
public static void main(String[] args) { int i=0; do{ System.out.println(i); }while (i>0);//i=0 i>0表达式的值为false }
4 逻辑控制综合案例
4.1 输出1000~1200之间所有的闰年
public static void main2(String[] args) { for (int i = 1000; i <=1200 ; i++) { if(i%100!=0&&i%4==0||i*400==0) { System.out.println(i); } } }
4.2 计算1~100之间9出现的次数
public static void main(String[] args) { int i=1; int num=0; while(i<=100){ int j=i; /* 求出一个数各个位上的数字 循环执行以下操作 第一步:用这个数取余10的到个数 第二步:这个数除等10 第三步:判断这个数是不是0 */ while (j>0){ if(j%10==9) { num++; } j=j/10; } i++; } System.out.println(num);//9 19 29 39 49 59 69 79 89 中各出现一次9 //90 91 92 93 94 95 96 97 98中各出现一次9 //99中出现两次9 总共20个9 }
加载全部内容