Java 流程控制:
顺序
分支
循环
分支:
if(布尔表达式){
语句块
}else{
语句块
}
尽量使用肯定条件,减少else,减少嵌套
package day06; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("输入一个整数:"); int n = con.nextInt(); con.close(); if(n > 0){ System.out.println("是正整数"); }else{ System.out.println("不是正整数"); } } }
package day06; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("输入一个整数:"); int n = con.nextInt(); con.close(); if(n > 0)//if语句块中只有一行代码的时候,可以省略花括号 System.out.println("是正整数"); else System.out.println("不是正整数"); } }
package day06; import java.util.Scanner; public class Demon02 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("输入一个整数:"); int n = con.nextInt(); con.close(); if(n > 0) System.out.println("正整数"); else if(n == 0) System.out.println("是0"); else System.out.println("是负整数"); } }
switch - case 结构
性能十分优秀
但是 只能 根据整数参数进行分支操作
if 多路 嵌套 条件灵活 适应性广,性能相对于 switch 差
如果 是根据整数多路分支 用switch
其他的可以使用 if
switch(command){
case 1:
//语句
break;
case 2:
//语句
break;
case 3:
// 3和4用同一个语句
case 4:
//语句
break;
}
package day06; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("输入成绩:"); int score = con.nextInt(); con.close(); if(score >= 0){ String level; switch(score/10){ case 10: level = "学霸"; break; case 9: level = "学神"; break; case 8: level = "学民"; break; case 7: level = "学痞"; break; case 6: level = "学渣"; break; default: level = "渣渣"; } System.out.println("你好"+level); }else System.out.println("渣渣有负的吗?"); } }
循环结构
经典的for常用于计次循环
for 循环可以替代其他他的循环结构
for(表达式1;表达式2;表达式3){
循环体
}
for(初始化表达式;循环条件(boolean);递增表达式){
循环体
}
for(;;){} ==》死循环
在不知道用什么循环的时候就用死循环
for(;循环条件;)当循环
控制使用
continue
用在循环中,结束本次循环而开始下一次循环.
break
用于退出当前语句块,退出循环
在嵌套的循环结构中,break 用于退出所在循环体,如果要退出外层循环体,需要使用标号的方式
for(){
for(){
break;
}
}
outer:for(){
for(){
break outer;
}
}
package day06; /** * 99乘法表 */ public class Demo04 { public static void main(String[] args) { for(int x = 1;x < 10;x++){ if(x == 2) continue; for(int y = 1; y <= x;y++){ if(y == 6) break; if(x*y >= 10) System.out.print(y+"*"+x+"="+x * y+' '); else System.out.print(y+"*"+x+"="+"0"+x * y+' '); } System.out.println(); } } }
package day06; /** *用死循环,反转字数 */ public class Demo05 { public static void main(String[] args) { int num = 1234567890; int sum = 0; int last; for (;;) { last = num % 10; sum = sum * 10 + last; num /= 10; if (num == 0) break; } System.out.println(sum); } }
package day06; import java.util.Scanner; public class Demo06 { public static void main(String[] args) { Scanner con = new Scanner(System.in); int score = -1; for (; score < 0 || score > 100;) { System.out.print("输入分数:"); score = con.nextInt(); } System.out.print(score); } }
while 循环
先判断 后循环
while(循环条件(布尔)){
循环体
}
package day06; import java.util.Scanner; public class Demo07 { public static void main(String[] args) { Scanner con = new Scanner(System.in); System.out.print("请输入一个三位数:"); int num = con.nextInt(); int nu = num; int sum = 0; while (num != 0) { int last = num % 10; sum += last * last * last; num /= 10; } if (sum == nu) System.out.println(nu + "是水仙花数"); else System.out.println(nu + "不是水仙花数"); } }
package day06; import java.util.Scanner; public class Demo07 { public static void main(String[] args) { // Scanner con = new Scanner(System.in); // System.out.print("请输入一个三位数:"); // int num = con.nextInt(); for (int num = 100; num < 1000; num++) { int nu = num; int sum = 0; while (nu != 0) { int last = nu % 10; sum += last * last * last; nu /= 10; } if (sum == num) System.out.println(num + "是水仙花数"); else System.out.println(num + "不是水仙花数"); } } }
do while 循环
先循环在检查,无论boolean表达式的值是true 还是 false 最少会进行一次循环
do{
循环体
}while(循环条件)
对比一下: for ;while ;do while
for 常用于 经典使用方式 与固定次数有关循环处理
for 可以替代其他的两种循环
for(;循环条件;){} 替代 while(循环条件){}
死循环:for(;;){} 替代while(true){}
for{;;}{if(循环条件) break;} 替代 do while(循环条件)
while 循环用于在循环体开始时候判断循环条件
do while 循环用于在循环体结束时候判断循环条件
不知道用什么循环就要for 的死循环,在适当的条件时候使用break