流程控制语句
我们在写Java代码的时候,可以说,都离不开三大流程控制语句:顺序、选择、循环。
选择结构
语法格式如下:
if结构,if-else结构
//简单格式1
if(条件)
语句;
//简单格式2
if(条件){
语句;
}
//简单格式3
if(条件)
语句;
else
语句;
//简单格式4
if(条件){
语句;
} else {
语句;
}
多重if
//复杂格式1
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
...
else
语句n;
//复杂格式1
if(表达式1){
语句1;
} else if(表达式2){
语句2;
} else if(表达式3) {
语句3;
}
...
else {
语句n;
}
嵌套if
将整个if块插入到另一个if块中
if(表达式1)
if(表达式2)
if(表达式3)
语句;
else
语句;
switch结构
JDK7.0以后switch括号中表达式的值,可以是基本数据类型的byte,short,int,char,以及String类型。
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
default:
语句3;
}
if与switch的区别
if结构:
-判断条件是布尔类型
-判断条件是一个范围
switch结构:
-判断条件是常量值
public class SwitchDemo {
public static void main(String[] args) {
int n = 2;
switch (n) {
case 3:
System.out.println("test 3");
case 4:
System.out.println("test 4");
default:
System.out.println("test default");
}
System.out.println("=======================");
switch (n) {
default:
System.out.println("test default");
case 3:
System.out.println("test 3");
case 4:
System.out.println("test 4");
}
/**
* 输出结果:
test default
=======================
test default
test 3
test 4
*/
}
}
注意:通过观察上面的示例demo,我们可以看到当switch中的case语句缺少break时,default放置在不同的地方,执行的逻辑是不相同的。
default的使用,是在switch语句里,当所有的case语句都不满足条件时,则执行default语句。
default在switch的开头或中间:
若所有case都不满足条件,则执行default语句,若default语句后面紧跟break,则直接结束;若default语句后没有紧跟break,则执行default语句之后的case语句,直至遇到break或switch语句结束。
default在switch的末尾:
若所有case语句都不满足条件,则执行default语句,结束;若有case满足,则执行case语句,直至遇到break或switch语句结束,所以default在最后一行时break,我们可以省略不写(但为了代码严谨性,不建议省略)。
循环结构
顺序结构,就是语句从上往下,依次执行。
而选择结构,根据条件执行对应的内容。
while循环
语法格式如下:
while(循环条件为true)
{
语句;
}
注意:如果循环体只有一条语句,大括号可以省略。为避免死循环,小括号后面不要加分号。
//错误写法示范
public void static main(String[] args) {
while(true); //为避免死循环,小括号后面不要加分号
}
范例:将小于5的整数打印输出。
首先,我们分析执行流程,如下图:
public class WhileDemo {
public static void main(String[] args) {
//求1到5的累加和
int n = 1;
int sum = 0; // sum是存放和的变量
while(n <= 5) {
sum = sum + n;
n++;
}
System.out.println("1到5的累加和为:"+sum);
}
}
do-while循环
语法格式如下:
do {
语句;
} while(循环条件);
注意事项:
1)do-while循环至少执行一次;
2)循环条件后的分号不能丢。
public class DoWhileDemo {
public static void main(String[] args) {
int sum = 0;
int n = 1;
do {
sum += n;
n++;
} while(n <= 5);
System.out.println("1到5的累加和为:"+ sum);
}
}
for循环
语法格式如下:
for(表达式1;表达式2;表达式3){
语句;
}
注意事项:
1)表达式1在循环中只执行一次;
2)局部变量只在定义它的大括号内有效;
3)break语句表示跳出当前循环。
public class ForDemo {
public static void main(String[] args) {
int sum = 0;
for (int n=1;n<=5;n++) { //局部变量只在定义它的大括号内有效!
sum += n;
}
System.out.println("1到5的累加和为:"+ sum);
}
}
循环嵌套
语法格式如下:
while(循环条件)
{
......
while(循环条件){
......
}
......
}
public class StarDemo {
public static void main(String[] args) {
int m = 1; //
while( m <= 10 ) {
int n = 1;
while(n <= 10) {
System.out.print("*");
n++;
}
System.out.println();
m++;
}
}
}
循环结构中使用的关键字
在循环结构中,为了控制循环体中的执行逻辑,我们经常会使用到 break 和 continue 这两个关键字。
break语句
break语句可以结束当前循环的执行。
执行完break语句后,循环体中位于break语句后面的语句就不会被执行。
在多重循环中,break语句只向外跳一层。
continue语句
continue语句只能用在循环里。
continue语句可以结束当前循环的执行,但是要继续下一次循环的执行。
参考链接:
https://www.cnblogs.com/JsonShare/p/6999765.html