嵌套的if结构:
int age = 19;
if(age>50){
out(“老年人”)
}else{
if(age>30){
out(“中年人”)
}
}else{
out(“正值壮年”)
}
嵌套的if结构在理论上是无限的,但是在开发中不要超过三层,超过三层不方便阅读和维护。
switch结构:简化if结构
demo:
int day = 1;
switch (day){
case 1:
out(“今天是星期一”);
break;
case 2:
out(“今天是星期二”);
break;
...
default :
out(“今天是个好日子”);
}
注意事项:break一定要写上,否则一旦匹配对应的值后,会一直输出其他的值。
for循环结构:
demo:
输出一个正方形:
for(int i = 0 ;i < 5 ; i++) {
for (int j = 0; j < 5 ; j++) {
System.out.print(" *");
}
System.out.println();
}
理解demo:首先,当 i = 0 时,执行循环体里面的数,即计算 j 的循环体,当遍历完一次J的数时,输出一行*号,然后结束J的循环,再输出换行,然后“ i ”变量更新数值,再次遍历 “ j ”,直接i不满足循环条件,完全结束该循环。
demo 2:
输出九九乘法表
for (int i = 1 ; i < 10 ; i++) {
for (int j = 1 ; j <= i ; j++) {
System.out.print( j +" * " + i + " = " + j*i);
}
System.out.println();
}
在实际开发不建议使用嵌套循环,不能超过三层,超过三层不方便阅读和维护,内存消耗是很可怕的。建议按照功能分离出来,形成并列的循环,方便阅读以及维护。
break关键字的了解
break关键字可以跳出当前循环,并且循环到此结束
demo:
//观察会输出几次
for (int i = 1; i <= 9; i++) {
if (i == 3) {
break;
}
System.out.println("i = "+i);
}
输出的结果只有 1和 2 。因为当i=3时,结束了循环并跳出,该数不进行输出。
demo 2: 嵌套循环中break的使用
//假如break跳出的是内层循环,那么I的值可以输出6次,j的值输出12次
//假如break跳出的是外层循环,那么I的值可以输出0次,j的值输出2次
for (int i = 0; i <= 5; i++) {
for (int j = 0; j <=5; j++) {
if (j == 2) {
break;
}
System.out.print("j = " + j);
}
System.out.println("i = " + i);
}
得出的结果为 i 输出了 6次,j 输出了12次,为内层循环。
结论推导:break只能跳出离它最近的循环
问 : 如果要跳出外层循环(指定的循环)?
答:可以使用lable(该lable只是一个标记,可写其他)实现标记实现
demo:
lable:
for (int i = 0; i <= 5; i++) {
for (int j = 0; j <=5; j++) {
if (j == 2) {
break lable;
}
System.out.print("j = " + j);
}
System.out.println("i = " + i);
}
输出结果为 j 输出2次,i 无输出。
demo 测试:设计一个代码,查找学生编号为3的学生。(使用break关键字)
for (int i = 0; i < 5; i++) {
if (i == 3) {
System.out.println("找到了学生编号为 "+i);
break;
}
}
continue 关键词的学习:
demo :
for (int i = 0; i <= 5; i++) {
for (int j = 0; j <=5; j++) {
if (j == 2) {
continue ;
}
System.out.print("j = " + j);
}
System.out.println("i = " + i);
}
输出结果为:
j = 0 j = 1 j = 3 j = 4 j = 5 i = 0
j = 0 j = 1 j = 3 j = 4 j = 5 i = 1
j = 0 j = 1 j = 3 j = 4 j = 5 i = 2
j = 0 j = 1 j = 3 j = 4 j = 5 i = 3
j = 0 j = 1 j = 3 j = 4 j = 5 i = 4
j = 0 j = 1 j = 3 j = 4 j = 5 i = 5
continue 的关键字的使用,它跳出的是当次循环。
如果要跳出外面的循环,也需要使用标记实现
return 关键字的学习
概念 :return 关键字并不是专门结束循环的,return语句用于终止函数的执行或者退出类的方法,并把控制权返回该方法的调用者。如果这个方法带有返回类型,return语句就必须返回这个类型的值;如果这个方法没有返回值,可以使用没有表达式的return语句
demo :
System.out.println("程序开始执行");
for (int i = 0; i < 10 ; i++) {
if (i == 5 ) {
break;
}
}
System.out.println("程序执行到最后了");
输出:程序开始执行
程序执行到最后了
发现:在使用break 关键字只会跳出循环,但是不会中断程序;
demo2:使用return关键字
System.out.println("程序开始执行");
for (int i = 0; i < 10 ; i++) {
if (i == 5 ) {
return;
}
}
System.out.println("程序执行到最后了");
输出结果为 程序开始执行
发现:使用 return 的时候可以让程序结束
总结:return 可以中断程序,return之后的代码不再执行。
while循环以及 do while 语法的学习:
while 循环的基本语法:
while(布尔表达式){
//循环体(循环体中一定要出现变量更新的语句,否则会出现死循环)
}
demo :
int num = 1 ;
while (num < 10) {
System.out.println(num);
num++;//循环体中必须出现变量更新的语句,否则可能出现死循环
}
}
do … while 循环
基本语法:
do {
循环体内容,必须出现变量更新的语句
}while(条件判断)
小结论:do while 循环不管是否满足条件都至少会被执行一次
demo :`
int num = 1 ;
do {
System.out.println("num的值 "+num);
num++;
} while (num > 10);//不满足条件
输出的结果是 1;
当 num的值不满足while里面的判断语句时,还是会输出 1 ;因为do已经执行一次并且输出。
总结: 1、什么时候使用for 什么时候使用 while ?
一般情况下,知道循环次数的时候考虑使用for循环,不知道循环次数时使用 while 循环
2、注意布尔表达式的内容可以是一个方法的调用。该方法必须返回布尔类型值。