JAVA基础篇——程序流程控制

三、程序流程控制

1. 分支结构if、switch

1) if分支

  • if 根据条件,选择执行某段程序

  • if 分支写法如下:

// if的三种形式
if (条件表达式) {
    代码;
}

if (条件表达式) {
    代码;
} else {
    代码;
}

if (条件表达式) {
    代码1;
} else if {
    代码2;
} else if {
    ……
} else {
    代码n;
}

注:

  • ()后面加分号,不会执行代码段
  • if后代码段只有一行代码的情况下,不需要加{}

2) switch

  • switch是通过比较值来决定执行哪条分支

  • switch分支写法如下:

switch(表达式) {
    case1:
        代码;
        break;
    case2:
        代码;
        break;
    ……
    default:
    	代码;    
}

**注:**swith中存在优化机制,算出表达式的值后不需要顺序寻找,会定位到算出来对应值的分支

注意事项:

1)表达式类型只能是byte、short、int、char、枚举、String;不支持long(值太大,没必要)、double(不精确)、float

2)case给出的值不能重复,且只能是字面量,不能是变量

3)不能忘记写break,否则会出现穿透现象——如果多个case分支代码相同,可以利用这个穿透性

if、switch比较,各自适合什么场景?

1) if更强大,更适合区间判断

2) switch适合值判断

2. 循环结构for

for(int i = 0; i < 3; i++) {
	System.out.println("Hello");
}
/*
流程:
首先执行初始化语句i=0
i = 0, 判断循环条件0 < 3, 返回true,计算机进入循环中执行输出,接着执行迭代语句i++;
i = 1, 判断循环条件1 < 3, 返回true,计算机进入循环中执行输出,接着执行迭代语句i++;
i = 2, 判断循环条件2 < 3, 返回true,计算机进入循环中执行输出,接着执行迭代语句i++;
i = 3, 判断循环条件3 < 3, 返回false
*/

for 循环在开发中常见的应用场景:

  • 减少重复编写代码,灵活控制程序执行
  • 批量生产数据
// for批量生产数据
for (int i = 1; i <= 100; i++) {
    System.out.println(i);
}

3. 循环结构while

初始化语句;
while (循环条件){
    循环体语句;
    迭代语句;
}

while 和 for 有什么区别?

  • 功能完全一样
  • 使用规范:知道循环几次用for;不知道循环几次用while

4. 循环结构do while

初始化语句;
do {
    循环体语句;
    迭代语句;
} while (循环条件);

**特点:**先执行,后判断

三种循环的总结:

  • for和while都是先判断再循环,do是先循环再判断
  • for和while流程功能无异,但最好满足使用规范
  • 初始化语句定义的变量作用域不同

5. 死循环、嵌套循环

死循环:服务器程序

/*for (; ;) {
    System.out.println("hello");
}*/
// 经典写法
/*while (true) {
    System.out.println("world");
}*/
/*do {
    System.out.println("gaga"); 
} while (true);*/

循环嵌套:循环中又包含循环

外部循环执行一次,内部循环执行一轮

public class LoopNestedDemo7 {
    public static void main(String[] args) {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.println("kaka" + i);
            }
        }
    }
}

6. 跳出循环break、continue

**break:**结束循环/结束所在switch分支的执行

**continue:**只能再循环中使用,跳出当前循环的当此执行

7. Random案例

调用Random的步骤

  • 导包
  • 写一行代码拿到随机数对象
  • 调用随机数的功能

官方默认生成[0, x]区间的随机数,如何生成指定区间的随机数——减加法

案例:猜数字游戏

public class Guessplay {
    public static void main(String[] args) {
        // 猜数字游戏:首先生成一个随机数代表要猜的数字,键盘输入数字代表用户猜测,加入判断提示输入过大或过小
        // 随机产生要猜的数据
        Random r = new Random();
        int x = r.nextInt(100) + 1;
        // 获得输入
        Scanner input = new Scanner(System.in);
        while (true) {
            int guess = input.nextInt();
            // 判断输入和随机数的大小
            if (guess == x) {
                System.out.println("猜对了!");
                break;
            } else if (guess < x) {
                System.out.println("过小!大胆猜!");
            } else {
                System.out.println("过大!收敛一点!");
            }
        }
/*        do {
            int guess = input.nextInt();
            // 判断输入和随机数的大小
            if (guess == x) {
                System.out.println("猜对了!");
                break;
            } else if (guess < x) {
                System.out.println("过小!大胆猜!");
            } else {
                System.out.println("过大!收敛一点!");
            }
        } while (true);*/
    }
}

总结

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值