java控制语句(超详细!)

您所在的位置:网站首页 java的基本语句格式 java控制语句(超详细!)

java控制语句(超详细!)

2023-09-13 16:43| 来源: 网络整理| 查看: 265

一、控制语句分类(3类) 选择语句循环语句转向语句 二、选择语句(分支语句) if语句switch语句 1.if语句 1.1语法格式: 第一种写法: int a = 100; int b = 200; if(布尔表达式){ java语句; java语句; } 这里的一个大括号{} 叫做一个分支。 该语法的执行原理是: 如果布尔表达式的结果是true,则执行大括 号中的程序,否则大括号中代码不执行。 第二种写法: if(布尔表达式){ // 分支1 java语句; }else{ // 分支2 java语句; } 执行原理:如果布尔表达式的结果是true,则执行分支1,分支2不执行。 如果布尔表达式的结果是false,分支1不执行,执行分支2. 以上的这个语句可以保证一定会有一个分支执行。 else表示其它。 第三种写法: if(布尔表达式1){ // 分支1 java语句; }else if(布尔表达式2){ // 分支2 java语句; }else if(布尔表达式3){ java语句; }else if(布尔表达式4){ java语句; }.... 以上if语句的执行原理: 先判断“布尔表达式1”,如果“布尔表达式1”为true,则执行分支1,然后if语句结束了。 当“布尔表达式1”结果是false,那么会继续判断布尔表达式2的结果, 如果布尔表达式2的结果是true,则执行分支2,然后整个if就结束了。 从上往下依次判断,主要看第一个true发生在哪个分支上。 第一个true对应的分支执行,只要一个分支执行,整个if结束。 第四种写法: if(布尔表达式1){ // 分支1 java语句; }else if(布尔表达式2){ // 分支2 java语句; }else if(布尔表达式3){ java语句; }else if(布尔表达式4){ java语句; }else{ java语句; // 以上条件没有一个成立的。这个else就执行了。 }

注:

对于if语句来说,在任何情况下只能有1个分支执行,不可能 存在2个或者更多个分支执行。if语句中只要有1个分支执行了, 整个if语句就结束了。(对于1个完整的if语句来说的。)以上4种语法机制中,凡是带有else分支的,一定可以保证会有 一个分支执行。 以上4种当中,第一种和第三种没有else分支,这样的语句可能会导致最后一个分支都不执行。 第二种和第四种肯定会有 1个分支执行。当分支当中“java语句;”只有1条,那么大括号{}可以省略,但为了 可读性,最好不要省略。(有的程序员在编写代码的时候,可能会故意 将大括号{}省略,你能看懂就行。) 小知识点: if(sex) System.out.println("男"); System.out.println("HelloWorld!"); // 以上的这3行代码没有问题,合乎语法。 /* else // 这一行编译报错,因为else缺少if System.out.println("女"); */ 以上代码编译器会自动转换为: if(sex){ System.out.println("男"); } System.out.println("HelloWorld!"); else// 这一行编译报错,因为else缺少if System.out.println("女"); int aa=10, bb = 10; if (a = b){//语法错误 } if (1){//c/c++可以,Java不行 } if (aa){//c/c++可以,Java不行,Java要boolean变量才行 } 2.switch语句 2.1语法格式 switch(值){ case 值1: java语句; java语句;... break; case 值2: java语句; java语句;... break; case 值3: java语句; java语句;... break; default: java语句; }

以上是一个完整的switch语句: 其中:break;语句不是必须的。default分支也不是必须的。

2.2执行原理

拿“值”与“值1”进行比较,如果相同,则执行该分支中的java语句, 然后遇到"break;"语句,switch语句就结束了。 如果“值”与“值1”不相等,会继续拿“值”与“值2”进行比较,如果相同, 则执行该分支中的java语句,然后遇到break;语句,switch结束。 注意:如果分支执行了,但是分支最后没有“break;”,此时会发生case 穿透现象。 所有的case都没有匹配成功,那么最后default分支会执行。

2.3switch语句支持的值

支持int类型以及String类型。

switch语句本质上是只支持int和String, 但是byte,short,char也可以 使用在switch语句当中,因为byte short char可以进行自动类型转换。

switch语句中“值”与“值1”、“值2”比较的时候会使用“==”进行比较。

2.4 case合并、case穿透 switch (score) { case 10: case 9: ans = "优"; break; case 8: ans = "良"; //break; case 7: ans = "中"; break; case 6: ans = "及格"; break; case 5: case 4: case 3: case 2: case 1: case 0: ans = "不及格"; break; default: ans = "输入的成绩有误"; } case10、case9 和 case 5、case 4、 case 3、case 2、 case 1、case 0都是属于case合并比如进入case8由于case8没有break会case穿透到case7才结束 三、选择语句 for循环while循环do…while…循环 1.for循环 1.1语法格式 for(初始化表达式; 条件表达式; 更新表达式){ 循环体; // 循环体由java语句构成 java语句; java语句; java语句; java语句; .... } 1.2执行原理

先执行初始化表达式,并且初始化表达式只执行1次。 然后判断条件表达式的结果,如果条件表达式结果为true,则执行循环体。 循环体结束之后,执行更新表达式。 更新完之后,再判断条件表达式的结果, 如果还是true,继续执行循环体。

直到更新表达式执行结束之后,再次判断条件时,条件为false,for循环终止。 在这里插入图片描述 更新表达式的作用是:控制循环的次数;换句话说,更新表达式会更新 某个变量的值,这样条件表达式的结果才有可能从true变成false,从而 终止for循环的执行,反之,很有可能会导致死循环。

2.while循环 2.1语法格式 while(布尔表达式){ 循环体; } 2.2执行原理

判断布尔表达式的结果,如果为true就执行循环体, 循环体结束之后,再次判断布尔表达式的结果, 如果还是true,继续执行循环体, 直到布尔表达式结果为false,while循环结束。

2.3for与while互相转换 for(初始化表达式; 布尔表达式; 更新表达式){ 循环体; } 初始化表达式; while(布尔表达式){ 循环体; 更新表达式; } 2.4 执行次数

while循环的循环次数是:0 ~ n次。

3.do…while…循环 3.1语法格式 do { 循环体; }while(布尔表达式);

注:while后有分号!! 因为while后是()结尾不是{}结尾!!

3.2执行原理

先执行循环体当中的代码,执行一次循环体之后, 判断布尔表达式的结果,如果为true,则继续执行 循环体,如果为false循环结束。

2.3 执行次数

对于do…while循环来说循环体至少执行1次。循环体的执行次数是:1 ~ n 次

注意与while循环次数的差别! 对于while循环来说,循环体执行次数是:0~n次。

四、选择语句 breakcontinuereturn 1.break break;语句比较特殊,特殊在:break语句是一个单词成为一个完整的java语句。另外:continue也是这样,他俩都是一个单词成为一条语句。break;语句的执行并不会让整个方法结束,break;语句主要是用来终止离它最近的那个循环语句。 1.1适用范围及作用

第一个位置:switch语句当中,用来终止switch语句的执行。 用在switch语句当中,防止case穿透现象,用来终止switch。

第二个位置:break;语句用在循环语句当中,用来终止循环的执行。 用在for当中 用在while当中 用在do…while…当中。

1.2 使用break跳出指定的循环 第一步:你需要给循环起一个名字,例如: a: for(){ b:for(){ if(条件表达式) break a; code1; code2; code3; } } 第二步:终止:break a; 2.continue 2.1适用范围及作用

用在循环语句中! 终止当前"本次"循环,直接进入下一次循环继续执行。

注:一但执行到continue,continue以下代码不执行,直接执行更新表达式,进入下一次循环。

2.2 使用continue跳过指定循环 a:for(;;更新表达式1){ b:for(;;更新表达式2){ if(条件表达式){ continue a; } code1; code2; code3; } } 3.return


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3