失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java基础【之】循环 流程控制 (if else whitch case while do while for...i foreach 多层循环与退出)

Java基础【之】循环 流程控制 (if else whitch case while do while for...i foreach 多层循环与退出)

时间:2021-11-23 15:56:25

相关推荐

Java基础【之】循环 流程控制 (if else whitch case while do while for...i foreach 多层循环与退出)

Java基础【之】循环、流程控制 (if else、whitch case、while、do while、for...i、foreach、多层循环与退出)

1.默认顺序执行2.分支控制if elseswitch case3.循环whiledo whilefor iforeach4.多层循环与主动退出(return、break、contuinue)循环代码使用 continue使用 break使用 return《上一篇:比较、运算、位运算》《练习题:输出一个菱形》《目录:Java渐进式学习》《幕》

1.默认顺序执行

代码逻辑,默认从入口函数进入,从上到下依次执行,然后程序退出

public static void main(String[] args) {// 默认从上到下执行// hello// whats your name// 999//int a = 999;hello();whatsYourName();System.out.println(a);}public static void hello() {System.out.println(" hello ");}public static void whatsYourName() {System.out.println(" whats your name");}

2.分支控制

if else

通过判断后,指定对应逻辑区域(如果、否则、否则…)if else ,经过判断逻辑后,只会进入其中某一块代码区域

if(){} else{}

if(){} else if(){} else{}

形式1:单一判断,if else

形式2:多层判断,最终流到 else 逻辑

形式3:多层判断,没有流到 else 逻辑

public static void main(String[] args) {int a = 999;//if else ,经过判断逻辑后,只会进入其中某一块代码区域// 形式1:单一判断,if else// a > 10if (a < 10) {System.out.println("a < 10");} else {System.out.println("a > 10");}//形式2:多层判断,最终流到 else 逻辑// ~全部不满足~if (a < 10) {System.out.println("a < 10");} else if (a < 50) {System.out.println("a < 50");} else {System.out.println("~全部不满足~");}//形式3:多层判断,没有流到 else 逻辑// a < 100000if (a < 10) {System.out.println("a < 10");} else if (a < 100) {System.out.println("a < 100");} else if (a < 100000) {System.out.println("a < 100000");} else {System.out.println("~全部不满足~");}}

switch case

语法

switch(表达式){ case {$值}:{$逻辑代码}; break; case {$值}:{$逻辑代码}; break; default:{$逻辑代码}; break; }switch(表达式)中表达式的值必须是(byte,short,char,int,枚举 (jdk 5.0),String (jdk 7.0);)case中的值必须是常量,不能是变量名或不确定的表达式值;同一个switch语句,case中的常量值互不相同;break用来在执行完一个case后跳出switch语句块;没有break,自己试一下;default子句是选的。没匹配的case时执行default

public static void main(String[] args) {int a = 50;switch (a) {case 50:System.out.println(50);//执行此处结束break;case 100:System.out.println(100);break;default:System.out.println("~没找到对应数字~");break;}String b = "王";switch (b) {case "赵":System.out.println(50);break;case "钱":System.out.println(100);break;case "孙":System.out.println(100);break;default:System.out.println("~没找到对应姓氏~");//执行此处结束break;}}

3.循环

while

语法:while({$条件}) { {$逻辑代码} }通过判断条件,存在 死循环与非死循环

死循环:程序无法退出,只能等待程序崩溃

非死循环:程序通过 判断你条件退出;或者通过break退出;

public static void main(String[] args) {//非死循环,退出条件为 :a等于0int a = 10;while (a != 0) {a = a - 1;System.out.println("1----" + a);}//非死循环,退出条件为 :a>100while (true) {a = a + 1;System.out.println("2----" + a);if (a > 100) {break;}}//死循环while (true) {System.out.println("死循环:" + a);}}

do while

语法:do{ {$逻辑代码} } while( {$循环条件} )与while一样,只不过,先执行代码,后判断条件

public static void main(String[] args) {//非死循环,退出条件为 :a等于0int a = 10;do {a = a - 1;System.out.println("1----" + a);}while (a != 0);//非死循环,退出条件为 :a>100do {a = a + 1;System.out.println("2----" + a);if (a > 100) {break;}} while (true);//死循环do {System.out.println("死循环:" + a);} while (true);}

for i

语法for(初始化条件;循环判断条件;循环结束后执行逻辑) { 循环体(逻辑代码)}仍然存在死循环情况(偶尔人为脑残~)

public static void main(String[] args) {//非死循环,退出条件为 :i小于10for (int i = 0; i < 10; i++) {System.out.println("非死循环----" + i);}//死循环,退出条件为 !=0;无法退出for (int i = 0; i != -1; i++) {System.out.println("死循环----" + i);}}

foreach

语法:for ( 对象 : 集合) { }JDK1.5+提供的便捷遍历集合的语法

public static void main(String[] args) {int a[] = new int[]{1, 2, 3, 4, 5, 6};for (int o : a) {System.out.println(o);}}

4.多层循环与主动退出(return、break、contuinue)

return; 退出当前方法,跟循环没关系,退出的是方法break; 退出当前 {} 循环 (退出一层大括号)continue; 结束本次循环,跟大括号没关系

循环代码

注意输出结果

/*** 输出结构* <p>* i=0* i=0 ; j=10* i=0 ; j=10 ; k=20* i=0 ; j=10 ; k=21* i=0 ; j=11* i=0 ; j=11 ; k=20* i=0 ; j=11 ; k=21* i=1* i=1 ; j=10* i=1 ; j=10 ; k=20* i=1 ; j=10 ; k=21* i=1 ; j=11* i=1 ; j=11 ; k=20* i=1 ; j=11 ; k=21*/public static void main(String[] args) {for (int i = 0; i < 2; i++) {System.out.println("i=" + i);for (int j = 10; j < 12; j++) {System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}}

使用 continue

continue; 结束本次循环,跟大括号没关系注意对比输出结果

/*** 输出结果* <p>* i=1* i=1 ; j=11* i=1 ; j=11 ; k=21*/public static void main(String[] args) {for (int i = 0; i < 2; i++) {if (i == 0) {continue;}System.out.println("i=" + i);for (int j = 10; j < 12; j++) {if (j == 10) {continue;}System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {if (k == 20) {continue;}System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}}

使用 break

break; 退出当前 {} 循环 (退出一层大括号)注意对比输出结果

/*** 输出结果* <p>* -----------------------------------------------------------------------------* i=0* -----------------------------------------------------------------------------* i=0* i=1* -----------------------------------------------------------------------------* i=0* i=0 ; j=10* i=0 ; j=11* i=1* i=1 ; j=10* i=1 ; j=11* -----------------------------------------------------------------------------*/public static void main(String[] args) {System.out.println("---------------------------------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);if (i == 0) {break;}for (int j = 10; j < 12; j++) {System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("---------------------------------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);for (int j = 10; j < 12; j++) {if (j == 10) {break;}System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("----------------------------------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);for (int j = 10; j < 12; j++) {System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {if (k == 20) {break;}System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("----------------------------------------------------------------------");}

使用 return

return; 退出当前方法,跟本次循环没关系,跟 {} 循环也没关系,退出的是当前执行的方法注意对比输出结果

/*** 输出结果* <p>* -----------------------------------------------------------------------------* i=0*/public static void main(String[] args) {System.out.println("------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);if (i == 0) {return;}for (int j = 10; j < 12; j++) {System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);for (int j = 10; j < 12; j++) {if (j == 10) {return;}System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("------------------------------------------");for (int i = 0; i < 2; i++) {System.out.println("i=" + i);for (int j = 10; j < 12; j++) {System.out.println("i=" + i + " ; j=" + j);for (int k = 20; k < 22; k++) {if (k == 20) {return;}System.out.println("i=" + i + " ; j=" + j + " ; k=" + k);}}}System.out.println("------------------------------------------");}

《上一篇:比较、运算、位运算》

点击跳转

《练习题:输出一个菱形》

点击跳转

《目录:Java渐进式学习》

点击跳转

《幕》

留白 —<老吉> ~ 今 ~ ❀ ~ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀❀❀❀ ❀❀❀❀❀❀❀

如果觉得《Java基础【之】循环 流程控制 (if else whitch case while do while for...i foreach 多层循环与退出)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。