程序流程控制
- 顺序结构
- 分支结构
- if分支
- switch 分支
- 适用场景
- 循环结构
- for循环
- while循环
- do while循环
- 总结
- 三种循环区别
- for和while不同
- 死循环
- 循环嵌套
- 跳转关键字:break、continue
- 案例:随机Random
- 猜数字
- 锦囊妙计
顺序结构
Java默认的结构
分支结构
if分支
根据判定的结果决定某个分支的代码
- 格式
if(条件表达式){
语句体;
}
if(){
语句体1;
}else{
语句体2;
}
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}
...
else{
语句体n+1;
}
switch 分支
适合做值匹配的分支选择
1.先执行表达式值 拿着这个值与case后的值匹配
2.匹配到哪个为true就执行 遇见break就跳出
3.如果都不匹配,执行default代码
举个例子
public class SwitchDemo {
public static void main(String[] args) {
String weekday = "周三";
switch(weekday){
case "周一":
System.out.println("今天周一");
break;
case "周二":
System.out.println("今天周二");
break;
case "周三":
System.out.println("今天周三");
break;
case "周四":
System.out.println("今天周四");
break;
case "周五":
System.out.println("今天周五");
break;
default:
System.out.println("今天休息");
}
}
}
如果是这样的话 最终将会输出 今天是周三
注意事项
- 表达式类型只能是byte、short、int、char、string 不支持double、float、long(因为double、float不精确
- case的值不允许重复,只能是字面量,不能是变量
- 不要忘记写break
- switch具有穿透性 遇不到break就会跳到下一个case中直到遇到break
适用场景
- if适合做区间匹配
- switch适合做:值匹配的分支选择
- if适用范围更广一些
循环结构
for循环
控制一段代码反复执行很多次
- 格式
for(初始化语句;循环条件;迭代语句){
循环体语句(重复执行的代码);
}
案例1
实现奇数和
法一:在for循环中,通过if筛选奇数
for(int i = 1; i <= 10; i++){
if(i % 2 == 1){
}
}
法二:直接在for循环找奇数
for(int i = 1 ; i <= 10; i += 2){
}
while循环
与for循环类似
示例
int i = 0 ;
while(i < 3 ){
System.out.println("Hello World");
i++
}
do while循环
先执行 再判断循环条件
示例
do {
循环体语句;
迭代语句;
} while(循环条件);
特点
一定会先执行一次循环体
总结
三种循环区别
- for、while都是先判断后执行
- do while 第一次先执行 后判断
for和while不同
- 知道循环几次 用for
- 不知道循环几次 用while
- for循环中,控制循环的变量只能在循环中使用。While循环中,在循环后还可以继续使用)
for循环演示
while循环演示
死循环
一直循环执行下去 没有干预不会停止
for( ; ; ){
System.out.println("Hello World");
}
输入密码登陆(死循环
循环嵌套
循环中又包含循环
特点
外部每循环一次 内部循环全部执行完一次
跳转关键字:break、continue
- break:跳出并结束当前所在循环执行
- continue:用于跳出当前循环 进入下一循环
注意
:
- 只能用于结束循环或结束switch分支
- 只能在循环中使用
案例:随机Random
用于在程序中获取随机数
使用步骤:
- 导入随机数技术(不用自己导
- 写一行代码得到随机数
Random r = new Random();
- 调用随机数的功能获取0-9的随机数
int number = r .nextInt(10);
注意
: nextlnt(n)只能生成0- n-1间的随机数,不包含n
- 如果要生成0 - n 的随机数 在r .nextInt(10)后加1
int number = r .nextInt(10) + 1;
猜数字
锦囊妙计
一个三位数
个位数 : a%10
十位数 : a/10%10
百位数 : a/100