Java 逻辑控制全面详解
1 顺序结构
顺序结构比较简单,就是代码一行一行的执行,本节之前写的所有代码都是顺序结构。
例如:
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 }
到此这篇关于Java 逻辑控制全面详解的文章就介绍到这了,更多相关Java 逻辑控制内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
- 这篇文章主要介绍了Vue 3.0 中 jsx 语法使用,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2020-11-13
- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- 这篇文章主要介绍了Java开发实现人机猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-03
- 这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29
Java 8 Stream 的终极技巧——Collectors 功能与操作方法详解
这篇文章主要介绍了Java 8 Stream Collectors 功能与操作方法,结合实例形式详细分析了Java 8 Stream Collectors 功能、操作方法及相关注意事项,需要的朋友可以参考下...2020-05-20Java中lombok的@Builder注解的解析与简单使用详解
这篇文章主要介绍了Java中lombok的@Builder注解的解析与简单使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-06- 下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16