10 Java语言基础 - 控制语句
控制语句分类
选择语句
if
switch
循环语句
for
while
do...while
转向语句
break
continue
返回语句
return
if语句详解
先列出4种不同形式的if语句
第一种:只要小括号中的布尔表达式为true,那么就会执行大括号里的代码,反之不执行
if (布尔表达式) {
// Java 语句
// Java 语句
// ...
}
第二种:只要小括号中的布尔表达式为true,那么就会执行if大括号里的代码, 反之会执行else里的代码
if (布尔表达式) {
// Java 语句
// Java 语句
// ...
} else {
// Java 语句
// Java 语句
// ...
}
第三种:可以有多个else if,如果布尔表达式1满足了,执行第一个大括号里的代码;如果布尔表达式2满足了,执行第二个大括号里的代码,以此类推;当条件满足后,不会再判断当前if语句的其它分支;
if (布尔表达式1) {
// Java 语句
// Java 语句
// ...
} else if (布尔表达式2) {
// Java 语句
// Java 语句
// ...
} else if (布尔表达式3) {
// Java 语句
// Java 语句
// ...
}
第四种:第三种的延伸,最后多了个else分支,如果前面都不满足,则会执行else的代码
if (布尔表达式1) {
// Java 语句
// Java 语句
// ...
} else if (布尔表达式2) {
// Java 语句
// Java 语句
// ...
} else if (布尔表达式3) {
// Java 语句
// Java 语句
// ...
} else {
// Java 语句
// Java 语句
// ...
}
第五种:只有一条Java语句时,可以省略大括号
if (true) System.out.println("huangcy.com 博客学习");
switch详解
比较完成的switch格式
switch(int或String类型或变量) {
case 配置int或String类型或变量:
java语句;
...
break;
case 配置int或String类型或变量:
java语句;
...
break;
default:
java语句;
...
}
switch执行原理:
switch后面的小括号中的“数据/变量”执照case后面的“数据”进行匹配,匹配成功的分支匹配;按照自上而下的顺序;
匹配成功的分支执行,匹配成功分支有break时,整个switch语句终止;没有的话会进入下一个分支执行,这种现象称为“穿透”;
所有分支都匹配不成功时,执行default分支
注意:虽然switch小括号里只能是int或switch类型,但是byte,char,short也可以写到switch和case后面,它们会自动类型转换,jdk7之前不行,之后都可以
case合并
switch(i){
case 1:
case 3:
case 5:
java语句
....
break;
case 6:
...
break;
}
switch例子
int num = 3;
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("非法!");
}
for循环
什么是?
在指定条件下重复执行的代码
何时?
需要重复执行一段代码时
格式:
for(初始表达式; 布尔表达式; 更新表达式) {
// 需要重复执行的代码块(也叫做:循环体)
}
for 循环执行过程/原理
初始化表达式、布尔表达式、更新表达式都可以不写,但是两个分号是必须的;for (; ;){}
初始化表达式最先执行,并且在整个for循环中只执行一次
布尔表达式必须是true/false,不能是其它值
循环过程:
- 判断布尔表达式,表达式为true时,执行循环体,然后执行更新表达式,继续判断布尔表达式的值,以此类推,直到布尔表达式为false;如果布尔表达式为false, 循环结束;
99乘法表例子
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(i + "*" + j + "=" + (i * j) + " ");
}
System.out.println();
}
while循环
格式:
while(布尔表达式) {
循环体
}
执行过程/原理:
先判断布尔表达式,如果为true,执行循环体,执行完循环体继续判断布尔表达式,直至遇到false,while循环结束
例子
int num1 = 10;
int num2 = 20;
while (num1 < num2) {
System.out.println(num1);
num1++;
}
do...while循环
格式:
do {
// 循环体
} while (布尔表达式);
执行过程/原理:
先执行循环体一次,然后再判断布尔表达式是否为true,为true继续执行循环体,然后再继续执行布尔表达式....直至布尔表达式为false,循环体结束;注意:不管布尔表达式是ture或false时,do...while语句至少执行一次循环体。
例子:
do {
System.out.println("我至少执行一次");
} while (5 < 3);
// 例2
int num = 0;
do {
System.out.println(num);
num++;
} while (num <= 10);
break
break可以用在switch、for、do...while、while语句中,用来控制循环的终止
何时?
当循环中达到某个目的/条件后,后续的循环就没必要再继续了,此时就可以使用break退出整个循环
例子:当循环到5时就结束整个循环
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
System.out.println(i); // 0 1 2 3 4
}
退出指定的for循环,给for循环起名字
parent:for (int i = 0; i < 10; i++) {
child:for (int j = 0; j < 10; j++) {
if (i == 5) {
break parent;
}
System.out.println(i);
}
}
continue
主要出现在循环语句中,用来控制循环跳过本次循环,继续下一个循环的
例子:
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
System.out.println(i); // 0 1 2 3 4 6 7 8 9 10
}
注意:continue也可以指定for循环命名跳出