Java流程控制
1. 顺序结构
顺序结构:从上往下依次执行
int x = 4;
int y = 6;
int n = x*y + (x%2) - (x / y);
System.out.println(n);
2. 选择结构
选择结构:根据条件执行对应的内容
- if…else 结构
- 多重if
- 嵌套if
- switch结构
if(x > y){
if(y > z){
System.out.println("do something");
}
}else{
System.out.println("do something");
}
if
结构判断条件是boolean
类型,判断条件是一个范围;switch
结构判断条件是常量值
// 表达式 必须是一个常量或常量表达式
switch (表达式){
case 常量表达式1:
语句1;
break; // break后跳出switch
case 常量表达式2:
语句2;
break;
default: // default 表示以上都不匹配时执行
语句3;
}
JDK 7.0
以后switch
表达式的值可以时基本数据类型的byte
,short
,int
,char
,以及String
类型
例:根据1-7输出星期一到星期日
Scanner s = new Scanner(System.in);
System.out.println("请输入1-7数字:");
int n = s.nextInt();
switch (n){
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("输入错误!");
}
3. 循环结构
Java 中的循环结构:
- while 循环
- do-while 循环
- for 循环
- 循环嵌套
while
语法
while (循环条件){
语句;
}
例1:输出小于5的所有整数
int n = 1;
while (n < 5){
System.out.println(n);
n++;
}
// 输出 1 2 3 4
例2:求1-5整数累加的和
int n = 1;
int sum = 0;
while (n <= 5){
sum += n;
n++;
}
System.out.println(sum);
do-while
循环语法:
do{
语句;
}while (循环条件);
do-while
循环至少执行一次;循环条件后的分号不能省略
例:
int n = 1;
int sum = 0;
do {
sum += n;
n++;
}while(n<=5);
for
循环
for(表达式1;表达式2;表达式3){
语句;
}
例:
int sum = 0;
for(int n=1;n<=5;n++){
sum += n;
}
System.out.println(sum);
for
里面的n
是局部变量
,外层不能访问
for
里面的三个表达式都可以省略
三种循环结构的应用场景
-
从
for
循环的结构看,三个表达式会依次被执行到,执行顺序也是固定的,所以for
循环适用于循环次数固定的场景;
-
while循环只有一个判断条件,结果为布尔值,如果为
true
则执行循环,为false
就不执行。所以while循环适用于不知道循环次数,只知道循环达到某个条件可以执行时使用。
-
do-while循环与while类似,只是判断条件放到了循环最后,不管是否满足条件,循环都会被执行一次。
break
跳出循环
break
语句跳出当前循环结构,一旦被执行,循环体中break
语句后面的代码将不再被执行。
Scanner s = new Scanner(System.in);
int n;
while(true){
n = s.nextInt();
if(n == 0)break;
System.out.println(n);
}
break
可用于switch
和循环
语句
continue
语句
continue
语句只能用在循环里;
continue
语句可以结束当前循环的执行(后面的代码不会运行),但是要继续下一次循环的执行
例:求1+3+5+7
int sum = 0;
for(int i=1;i<9;i++){
if(i % 2 == 0) continue;
sum+=i;
}
System.out.println(sum);