1.if语句
重点:只要又有一个if的分支执行了,就结束整个if语句
带else结尾的if语句,一定有分支执行,允许嵌套使用
关于java语言当中的1f语句,属于选择结构,if语句又被称为分支语句/条件控制语句:
if语句的语法结构:四种编写方式
- 第一种: ==最多只有一个执行,==可能if语句里面的语句都不执行
主f(布尔衣达式) {
java语句;…
第二种:二选一,==一定有一个要被执行 ,==不是if语句里面的就是else里面的
if(布尔表达式){
java语句;java语句;
}else{
java语句;java语句;
}
第三种:可能if语句里面的语句都不执行
if(布尔表达式) {
java语包;java语句;
}else if(布尔表达式){
java语句;
java语句;…
}第四种:
if(布尔表达式) {
java语包;java语句;
}else if(布尔表达式){
java语句;
java语句;…
}else{}
重点:对于java中的if语句来说,==只要有一个分支执行,==整个if语句全部结束.
注意:以上的第二种编写方式和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行
- "所有的控制语句"都是可以嵌套使用的-只要合理嵌套就行
注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用大括号包围的需要对称
5、if语句的分支中只有一条java语句的话,大括号可以省略不写。
if(true){
一承java语句;
}
if (true/false)一条java语句;看得懂就行,不要这样写,不美观
public class IfTest01{ public static void main (String [] args){ //需求:所在位置的五公里范围之内有肯德基的话,去KFc吃午饭 //公里数 //double distance = 6.0 ; //单位kM double distance = 1.o ; //判断语句 if(distance < 5 ) { System.out.println ( "去KFc吃开封菜!") ; } /* 需求: 假设系统给定一个考生的成绩,成绩可能带有小数点 根据学生的成绩判断该学生的成绩等级: [90-100]A [ 80-90)B [70-80)c [ 60-70)D [o-60)E 以上的逻辑判断采用if语句完成,应该怎么写? */ double grade = 90 ; if(grade >= 90){ System.out.println ( 'A') ; }else if(grade >= 80) { System.out.println ( 'B') ; }else if (grade >= 70) { System.out.println ( 'C') ; }else if (grade >= 60){ System.out.println ( 'D' ) ; }else{ System.out.println ( 'E' ) ; } } } //使用以下这种方式可以完成需求,但是这种方式效率较低。每一个if都是不相关的,都是独立的/每一个if都会判断一次-,浪费内存 /* if(){ } if(){ } if(){ } if() { } */
//根据需求决定选择以上的第四种结构来完成需求 /* if(score < 0 || score > 100){ System.out.println("对不起,您提供的考生成绩不合法"); }else if(score >= 90 && score <= 100){ //没必要判断是否小于等于100,能执行到这里一定是<=100 */ //意味着成绩肯定是合格的,在 0----100之间 if(score < 0 || score > 100) { System.out.println("对不起,您提供的考生成绩不合法"); }else if(score >= 90) { System.out.println("该考生的考试成绩等级是:A" ); }e1se if(score >= 80){ //能够判断到这里说明成绩一定是小于90分的 System.out.println("该考生的考试成绩等级是:B等级"); }else if (score >=70){ System.out.println("该考生的考试成绩等级是:c等级"); }else if (score >=60){ System.out.println("该考生的考试成绩等级是:D等级"); }else{ System.out.print1n("该考生的考试成绩等级是:E等级"); }
代码优化
String grade ="该考生的考试成绩等级是:E等级"; if(score < 0 || score > 100){ grade = "对不起,您提供的考生成绩不合法"; }else if(score >= 90){ grade = "该考生的考试成绩等级是:A等级"; }else if(score >= 80){ grade = "该考生的考试成绒等级是:B等级"; }else if(score >= 70){ grade = "该考生的考试成绩等级是:c等级"; }else if(score >=60){ grade = "该考生的考试成绩等级是:D等级"; System.out.println(grade); /* 默认就是不合格,如果匹配,就改变grade的值 */
/*需求: 假设系统给定一个人的年龄,根据年龄来判断这个人处于生命的哪个阶段,年龄必须在[O-1501 [0-5]幼儿 [6-10]少儿 [11-18]青少年 [19-35]青年 [36-55]中年 [56-150]老年 */ public class IfTest02{ public static void main (String[] args){ } }
键盘输入信息到内存中
/*System.out.println();负责向控制台输出 【从内存到控制台,输出的过程,这是从内存中出来了】 接收用户键盘输入,从"键盘"到"内存"。 【输入的过程,到内存中去】 以下代码先不要问为什么!固定编写就可以接收用户键盘的输入。 也可以使用import 导入相应的包 */ public class KeyInputTest{ public static void main (String[] args){ //第一步:创建键盘扫描器对象 java.util.Scanner s = new java.util.Scanner(System.in); //第二步:调用Scanner对象的next()方法开始接收用户键盘输入 //程序执行到这里会停下来,等待用户的输入 //当用户输入后,回车键后,键入的内容会自动 //赋值给userInputContent String userInputConten = s.next(); //标识符见名知意 System.out.println("你输入的是:" + userInputContent); //接收薮字【以整数型int的形式来接收】 int num = s.nextInt(); //将内存中的数据输出到控制台 //System.out.printin("w您输入了: " +userInputContent); System.out.println ("您输入的数字是:" + num) ;
总结:记住代码,或者直接将代码复制粘贴
第一步:
java.util.Scanner s = new java.util. Scanner(System.in) ;
第二步:
String str = s.next();或
int num = s.nextInt() ;public class IfTest02{ public static void main (String[] args){ //1、接收键盘输入:年龄【输入的时候必须输入数字】 //推荐使用,尽量不使用导包的方式处理 java.util.Scanner s = new java.util.Scanner(system.in); //system.out.println("请输入您的年龄:") ; System.out.print("请输入您的年龄:"); //输出提示信息, //要不然用户根本不知道这里要干嘛! int age = s.nextInt(); //停下来等待用户的输入,输入之后自动接收,赋值给age变量。以整数形式进行输入 // System.out.println( "age = " + age); //2、根据需求进行业务逻辑判断 /* 以字符串形式进行文本输入 java.util.Scanner s = new java.util.Scanner(System.in); String userInputContent = s.next(); */ String str = "老年"; if(age < 0 || age > 150) { str = "您提供的年龄不合法,年龄值需要在[0-150]之间" ; }else if(age <= 5) { str = "幼儿"; }else if(age <= 10){ str = "少年"; }else if(age <= 18){ str = "青少年"; }else if(age <= 35){ str = "青年"; }else if( age <=55){ str = "中年"; } System.out.println("你处于生命周期的" + str +"阶段!");
- /*
需求:
判断当前的天气:
当外边下雨的时候:
带南伞:
判断性别:
当性别为男:带一把大黑伞,当性别为女:带一把小花年伞
当外边是晴天的时候:
判断天气的温度:
当天气温度在30度以上:
当性别为男:戴墨镜,- 当性别为女:擦防晒霜
提示:
1、一定会用到嵌套
2、天气状况、性别、温度都要键入用1和0进行代替
*/
public class IfTest03{ public static void main (String[] args){ java.util.Scanner = new java.util.Scanner(System.in); System.out.println("欢迎使用本系统,您通过本系统可以完成一些简单的判断"); System.out.println("说明1:1表示下雨,0表示晴天"); System.out.println("说明2:1表示男:0表示女"); System.out.println("说明3:温度为数字"); //接收天气的状况 System.out.print("请输入性别状况:"); int sex = s.nextInt(); System.out.print("请输入当前天气状况:"); int weather = s.nextInt() ; //判断天气状况 if(weather == 1){ //下雨天 System.out.println("下雨天"); if(sex == 1){ System.out.println("带一把大黑伞"); }else if(sex == 0){ System.out.println("带一把大花伞"); }else{ System.out.println("你输入的性别有误"); } }else if(weather == 0){ //晴天 // System. out.println( "睛天"); /* 不管是晴天雨天,都需要键入,性别,分别键入 显然复杂,浪费内存,对于都需要的,共同的, 应该外部,就是放在if判断 */ int tem = s.nextInt (); if( tem > 30) { if( sex==1){ System.out.println("戴墨镜"); }else if(sex == 0){ System.out.println("搽防晒霜"); }else{ System.out.println("对不起,您的性别是怎么事?"); } }else{ System.out.println("对不起,您输入的天气状况不存在!"); } }
public class IfTest04{
public static void main (String [] args){
boolean sex = true ;
if(sex) {
System.out.println(“男”);
}else{
System.out.println(“女”);
sex = false;
if(sex)
System.out.println(“男”);
else
System.out.println(“女”);
//-条件后面只有一句语句,正常运行------------------
if(sex)
System.out.println(“男”);
//此处已经和else断开
//下面的语句就是一个独立的语句System.out.println("呵呵"); else//报错,禁止单独使用 /* 17行开始报错,if没问题,然后输出男,再输出呵呵呵, 17行开始报错,else找不到if,违反else不可以单独使用 注意:编译器只检查语法,不检查语义错误 允许if单独使用,不允许else单独使用 */ System.out.println( "女");
}
}
2.switch语句
关于switch语句:
1、switch语句也属于选择结构,也是分支语句
2、switch语句的语法结构:
一个比较完整的switch语句应该这样编写:
switch (int或string类型的字面值或变量){ case int或string类型的字面值或变量: java语句; java语句; java语句; break ; case int或string类型的字面值或变量: java语句; java语句; java语句; break ; case int或string类型的字面值或变量: java语句; javai语句; java语句; break; .... default; java语句; ....
3.switch语句的执行原理:
switch后面小括号当中的"数据"
和case后面的"数据"
进行一一匹配,
匹配成功的分支执行。按照自上而下的顺序依次匹配。
匹配成功的分支执行,分支当中最后有
"break;"
语句的话,整个switch语句终止
。匹配成功的分支执行,分支当中没有"break;"语句的话,直接进入下一个分支执行(不进行匹配)这种现象被称为case穿透现象。【提供break;语句可以避免穿透】
所有分支都没有匹配成功,当有default的语句话,会执行default分支当中的程序。
switch后面和case后面只能是int或者string类型的数据,不能是探测其它类型。
当然byte , short,char也可以直接写到switch和case后面,因为它们可以进行自动类型转换。byte , short , char可以自动转换成int类型。
JDK6的,switch和case后面只能探测int类型。
JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或string类型的数据。
case可以合并:
int i = 10 ;
switch (i) {
case 1: case 2 : case 3: case 10:
//满足其中一个人case条件就执行下面的语句
System.out.println(“Test code !”);
}注意:
1、Switch适用于多项选择问题,在成绩处理问题时,经常除以10除以60,然后(int)处理,就是简单的数学角度处理
public class switchTest05{ public static void main(String[]args){ //考生成绩 double score = 95.5; double score = 100; double score = 60.5; double score = 59.9; 转换成int int grade = (int)(score / 10); switch(grade){ case 9: case 10: System.out.println("A"); break; case 8: System.out.println("B"); break; case 7: System.out.println("C”); break; case 6: System.out.println("D"); break; default: System.out.println("E"); } } }
*/ public class 动力节点temp{ public static void main(String [] args){ /* long a = 10L; int b = a; //编译报错*/ /* long x = 100L; switch(x){} //编译报错 */ //解决编译错误 long x = 100L; switch((int)x){} byte b = 10; switch(b){} short s = 10; switch(s){} char c = 'A'; switch(c){} char cc = 97; switch(cc){} //编译报错 // switch (true) {} String userName = "zhangsan"; switch(userName){} /* 较switch完整的switch语句 */ //接收用户的输入: //1表示星期一 //2表示星期二 //... //7表示星期日 java.util.Scanner sc = new java.util.Scanner(System.in); System.out.print("请输入数字"); int num = sc.nextInt(); switch(num){ 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("你输入的数字有误!!!"); } }
/* case 穿透 switch(num){ case 1 : System.out.println("星期一"); case 2 : System.out.println("星期二"); case 3 : System.out.println("星期三"); case 4 : System.out.println("星期四"); case 5 : System.out.println("星期五"); case 6 : System.out.println("星期六"); case 7 : System.out.println("星期七"); default : System.out.println("你输入的数字有误!!!"); } 输入1,全部穿透,输入3,从3开始到后面,全部穿透 */ /* case合并 switch(num){ case 1 : case 0: 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("你输入的数字有误!!!"); 输入0或1 (case合并)均会输出 星期一
四则运算
*/ /* 实现计算器当中的 + - * / % 实现思路: 1、选择所有数据从健盘输入 2、使用switch语句进行判断 3、需要从控制台输入三次: 第一个数字 运算符 第二个数字 最终在控制台上是这样的一个场景: 欢迎使用简单计算器系统: 请输入第一个数字:10 请输入运算符:+-*/ /* % */ /* 请输入第二个数字:20 运算结果:10l */ public class SwitchTest04{ public static void main(String [] args) { // 导入扫描器 java.uti1.Scanner s = new java.uti1.Scanner(System.in); System.out.println("欢迎使用简单计算器系统"); System.out.println("请输入第一个数字(仅限整型数据):"); // 用户输入第一个参与运算的数 int num1 = s.nextInt(); System.out.println("请输入一个运算符"); // 用户输入操作符 String operator = s.next(); System.out.println("请输入第二个数字"); // 用户输入第二个参与运算的数 int num2 = s.nextInt(); // Switch区分不同的操作类型 int result = 0; switch(operator){ case "+": result = num1 + num2; break ; case "-": result = num1 - num2; break; case "*": result = num1 * num2; break; case "/": result = num1 / num2; break; case "%": result = num1 % num2; break; } // 输出结果的打印 System.out.println("运算结果为:"+num1+operator+num2+"="+result); // 每个case后面都需要运算结果输出,干脆放到外面,节省内存空间 } }
3.for
-
循环结构:
在程序当中总有一些需要反复的/重复的执行的代码
,假设没有循环结构,那么这段需要重复执行的代码自然是需要重复编写的。代码无法得到重复使用。所以多数编程语言都是支持循环结构的。将来把需要反复执行的代码片段放到"循环体",再联合"计数器”,共同控制这段需要反复执行的代码。 -
基本上所有的编程语言支持的循环包括三种:
- for循环
- while循环
- do. . while循环
-
当前示例主要讲解for循环。for循环的语法结构是什么呢?
语法结构:- for(
初始化表达式;布尔表达式;更新表达式
) {
//是需要重复执行的代码片段[循环体:由java语句构成]
}
- for(
-
for循环执行过程/原理
-
初始化表达式、布尔表达式、更新表达式都不是必须的!
[但是两个分号是必须的
]-
for(;😉{
}
-
【死循环】 ctrl + c 停止死循环
-
-
初始化表达式最先执行,并且在
整个for循环当中只执行一次。
-
布尔表达式必须是true/false,不能是其它值。
-
for 的执行过程:
先执行初始化表达式,并且该表达式只执行一次
判断布尔表达式的结果是true还是false
布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果是true还是false
布尔表达式true
执行循环体
执行更新表达式
判断布尔表达式的结果是true还是false
布尔表达式true布尔表达式false
循环结束
布尔表达式false
循环结束
布尔表达式false
循环结束
-
-
不使用循环
-
public class ForTest01{ public static void main(String [] args){ System.out.println("1"); System.out.println("2"); System.out.println("3"); System.out.println("4"); System.out.println("5"); System.out.println("6"); System.out.println("8"); System.out.println("9"); System.out.println("10"); } }
-
-
使用循环
-
// 使用循环 public class ForTest02{ public static void main(String [] args){ for(int i = 1;i < 11;i++){ System.out.println(i); } } }
-
-
i变量的作用域
-
/* i变量的作用域。 */ public class ForTest02{ public static void main(String [] args){ //以下的for循环当中i"变量的作用域是仅限于当前for循环内部使用。 for(int i = 0;i < 10;i++){ System.out.println("i—-->"+i); } //以下的for循环当中"i"变量的作用域是仅限于当前for循环内部使用。 for(int i = 0;i <= 10;i++){ System.out.println("i—-->>"+i); } /* 这个i变量可以在main方法的作用域当中访问吗?无法访问 System.out.println(" i " + i); 只要一跳出for循环,变量i就会在内存空间中被销毁,也就没法 在for循环外面使用 编译错误 */ //main方法作用域当中的i变量,只要main方法没有结束,这里的i就能用。 int i = 0; for( ;i < 10;i++){ System.out.println( "i ---->" + i); } //这里可以访问main方法作用域当中的i变量 System.out.println("i—-->" + i); //10 } } /* 还可以这样写,先声明变量,在进行赋值 int j; for(i = 1;i <= 10;i++){ System.out.println(i); }
-
奇数偶数
-
public class ForTest03{ public static void main(String [] args){ //输出1~10中所有的奇数 for(int i = 1;i <= 10;i += 2){ // i+=2 i= i + 2; System.out.println("i -->" +i);// 1 3 5 7 9 } //输出1~10中所有的偶数 for(int i = 2;i <= 10;i += 2){ System.out.println("i -->"+i); } for(int i = 10;i > 0;i--){ System.out.println("i -->" + i); //10 9 8 7 6 5 4 3 2 1 } for(int i = 100;i > 50;i -= 10){ System.out.println("i -->" + i); //100 90 80 70 60 50 } } } /* 循环迭代条件可以放在循环体的最后一句语句; for(int i=0;i<10;){ System.out.println(i); i++; //一定要放在最后一句,才可以与正常写法等价 若不写在最后一句,则不等价于正常for循环写法 但是不会报错,也可以进行循环,只不过,什么时 候结束循环会有差距。 故意不写迭代条件,也不会报错,直接进入死循环 } */ /* 循环语句和条件判断语句嵌套使用【for和if的嵌套】 */
-
奇数问题
-
public class ForTest04{ public static void main(String [] args){ //找出1~100所有的奇数 //第一种方案:从1开始,每次递增2,这样每一个数字一定是奇数。 for(int i=1;i<=100;i+=2){ System.out.println("奇薮-->" + i); } //第二种方案:从1开始,以1递增,每一个数据都进行判断,判断标 //准是该数字对2求余数 for(int i=1;i<=100;i++){ //system. out .println("i --习" + i); //判断i是否为奇数,是奇数的时候输出 //i%2= 0//偶数 //i%2= 1//奇数 //i % 2 != 0//奇数 if(i % 2 != 0){ // if()里面是一个布尔型的值 System.out.println(i); } } //以上两种方案,优先选择第一种方案: 代码少,循环次数少,效率较高
-
求和问题
-
/* 在前一个程序的基础之上,计算1~100所有奇数的和 1+3+5+7+9.....+99累加 运算符 += 就是专门完成追加的. 注意:设计累计问题,一般是将累计变量放在循环体外面 */ public class ForTest05{ public static void main(String [] args){ //定义一个变量[盒子],初始值为0 int sum = 0; for(int i=1;i<100;i+=2){ //i一定是奇数 //累加求和 //system.out .println("i -->”+ i); sum += i; } //以上的for循环结束之后,最终输出求和的结果 System.out.println("sum =" + sum); } }
-
嵌套问题
-
/* for循环嵌套for循环 */ public class ForTest06{ public static void main(String [] args){ for(int i = 1;i <= 10;i++){ /*共循环10次 循环体中可以编写其它的控制语句 控制语句可以嵌套使用 //控制语句可以是:if、 if..else、switch、 for. while、do ..while if(){ for(){ while(){ if(){ for(){ } } } } } */ /*内层循环,内层循环中的变量名和外层循环中的变量名不能重名。 作用域的问题 for ( int i=100; ; ){ } */ } }
-
for循环嵌套
-
/* 最好不要想太多,即使循环体当中是一个for循环,不要将这个for特殊化,也是只一个普通的for循环,只不过是一段符 合java语法的代码 */ public class ForTest07{ public static void main(String [] args){ for(int i = 0;i < 10;i++){//循环10次 //这里的代码片段执行10遍 for(int j = 0;j < 1;++){ //循环1次,输出0 System.out.println("j--->"+j); } } } }
-
乘法表
-
/* 使用for循坏输出九九乘法表: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 ---- ----- ........................ 9*1=9 .........9*9=81 关键点:观察规律,怎么将内外循环联系起来 每一行与行号相同的,明显是第一个乘数,显然让第一个乘数作为外循环更好 联系:内循环的终止条件就是行号 for(int i = 1;i<=9;i++){ //外层循环9次 //i是行号 //System.out.println(i); //循环体当中的程序主要的任务是什么? //处理当前行,将当前行中所有的项目全部输出 /* for(int j=1;j<=???;j++){ System.out.println(""); } } 第几行就要循环几次,所以j<=i 就可以将内外循环联系起来 */ public class ForTest08{ public static void main(String [] args){ for(int i = 1;i <= 9;i++){ //行,第一个乘数 for(int j = 1; j <= i;j++){ //列,第二个乘数 //输出结果,并进行填充 System.out.print(i + "*" + j + "=" + i * j + "\t"); } System.out.println(); } } }
-
-
先死后活和标记的编程思想
-
/* 编写for循环找出1~100中所有的素数 素数:又被称为质数,能够被1和自身整除,不能被其它数 字整除的数字称为素数。 //先编写程序,验证7这个数字是否为素数 实现思路: 7/1 [不需要] 7/2 [7 % 2 != 0] 7/3 [7 % 3 != 0] 7/4 [7 % 4 != 0] 7/5 [7 % 5 != 0] 7/6 [7 % 6 != 0] 7/7 [不需要] 结论是: 7是素数 重点掌握编辑思想和先死后活思想 int i=8; boolean issushu = true; //默认将i看做一一个素数[标记在开发中比较常用] for(int j=2;j<i;j++){ //j是什么: 2 3 4 5 6 if(i % j == 0){ //非素数 isSuShu = false; //已经知道i是非素数,跳出循环,效率较高 ,避免资源浪费。 break; } } System.out.println(isSuShu ? i + "是素数": i + "怀是素数"); 符合三元运算符类型兼容,"" 用加号与别的相连,将其他转化为字符串 */ public class ForTest09{ public static void main(String [] args){ int count = 0; for(int i=2;i<=100;i++){ boolean isSuShu = true; //假定是素数,然后再去否定它 for(int j=2;j<i;j++){ if(i%j == 0){ isSuShu = false; break; //一旦否定成功就跳出循环,提高代码运行效率 } } if(isSuShu){ //是素数 System.out.print(i+"\t"); count++; if(count % 8 == 0){ System.out.println(); } } } } } /* 数量统计的方式: 也可以不使用求余的方式进行换行的判定 1.求余 2.逢八就归零 count++; if(count == 8){ System.out.println(); //换行之后进行统计的归零 count = 0; } */
4.while循环
-
while循环语句:
-
while循环的语法结构:
while(布尔表达式){
循环体;
} -
while循环的执行原理:
- 先判断布尔表达式的结果:
- true
执行循环体 - false
循环结束
- true
- 先判断布尔表达式的结果:
-
while循环的循环次数:
- 0~N次
注意:while循环的循环体可能执行次数为0次.
- 0~N次
-
public class WhileTest01{ public static void main(String [] args){ int i = 10; int j = 3; while(i > j){ System.out.println("hehe!"); } } }
5.do-while
/*
do. . while循环:
1、do..while循环的语法结构:
do{
循环体;
}while(布尔表达式);
2、do. . whi le循环的执行原理
3、do. . while循环的执行次数:
do. . while循环的循环体代码片段执行次数是: 1----N次 [至少一次]
4、使用do. .while循环的注意事项:
do. . while循环语句最终有一个分号 ; 别丢了。
*/
public class DoWhile01
{
public static void main(String [] args){
int i = 10;
do{
System.out.println("do while 循环"+i);
}while(i > 100);
// 至少执行一遍
while(i > 100){
System.out.println("while循环"+i);
}
}
}
6.终止语句
6.1.break
- 关于java控制语句当中的break语句:
- break是java语 言当中的关键字,被翻译为"中断/折断"
- break ;可以成为一个单独的完整的java语句:
break; - break语句使用在switch语句当中,用来终止switch的语句执行。
- break语句同样可以使用在循环语句当中,用来终止循环的执行。
- break终止哪个循环呢?
- break;语句使用在
for,while,do..while
循环语句当中用来跳出循环
,终止循环的执行。因为当程序循环到某个条件的时候,后续的循环没必要执行了,再执行也是耗费资源,所以可以终止循环,这样可以提高程序的执行效率。
- break;语句使用在
- break终止哪个循环呢?
- 以下以for循环为例讲解break;语句。
- 默认情况下,
break终止的是离它最近的循环
,特殊情况,标签指定
public class BreakTest01
{
public static void main(String[] args){
for(int i = 0;i < 10;i++) {
if(i == 5){
break ;
// 终止的是当前的for循环
}
System.out.println("i --> " + i);//01234
}
// helloworld与break无关,依旧输出
System.out.println("hello world");
//以下语法使用较少。
//给for循环起名for1
for1:for(int j = 0;j < 3;j++){
//给for循环起名for2
for2:for(int i = 0;i < 10;i++){
if(i == 5){
break for1;
}
//终止for1循环
System.out.println("---->"+ i);
}
}
}
}
6.2.continue
-
continue语句:
-
continue表示: 继续/go on/ 下一个
-
continue也是一个continue关键字加一个分号构成一个单独的完整的java语句,主要出现循环语句当中用来控制循环的执行。
-
break和continue的 区别?
-
break表示
循环不执行了
-
continue表示
直接进入下一次循环继续执行
,整个循环并未结束循环,跳过的只是本次循环。 默认情况下,continue终止的是离它最近的循环
,特殊情况,标签指定 -
public class ContinueTest01{ public static void main(String [] args){ for(int i = 0;i < 10;i++){ if(i == 5){ break; } System.out.println("i ="+ i); //01234 } System.out.println("He1lo World"); for(int i = 0;i < 10;i++){ if(i == 5){ continue; } //只要这个语句执行,当前本次循环停止,从continue开始到 //本循环的最后一个语句之间所有的语句不再执行 //直接进入下一次循环继续执行,执行一个完整的循环 System.out.print1n("i ="+i); //012346789 } System.out.println("He11o World"); } }
-
-
补充return
- 终止所在方法
- 返回一个值,在递归中,
必须执行到 ; 处,
才算完整,然后进行返回
-