Java流程控制

本文详细介绍了Java中的分支结构(if和switch)、循环结构(for、while和do_while),以及Scanner和Random函数的使用,通过实例展示了如何在实际编程中应用这些控制结构来解决问题。
摘要由CSDN通过智能技术生成

Java流程控制

1、分支结构

1.1 if分支

if分支有三种形式:

image-20240123163645515

        // 需求1:测量用户体温,如果提问大于37°就报警
        double t = 37.5;
        if (t > 37) {
            System.out.println("体温不正常,赶紧带走!!!!");
        }

        // 需求2:发红包,现在钱包有99元,发出90元红包,如果够发则发送成功,如果不够发则显示余额不足
        double money = 89.0;
        if (money > 90) {
            System.out.println("发送成功!");
        } else {
            System.out.println("余额不足,穷光蛋一枚~~");
        }

        // 需求3:[0,60)D,[60,70)C,[70,90)B,[90,100]A
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入分数:");
        int score = sc.nextInt();
        if (score >= 0 && score < 60) {
            System.out.println("D");
        } else if (score >= 60 && score < 70) {
            System.out.println("C");
        } else if (score >= 70 && score < 90) {
            System.out.println("B");
        } else if (score >= 90 && score <= 100) {
            System.out.println("A");
        } else {
            System.out.println("录入出错!");
        }

1.2 switch分支

格式:

switch(表达式){
    case 表达式运算的值1:
        执行的代码;
        break;
    case 表达式运算的值2:
        执行的代码;
        break;
    ...........
    case 表达式运算的值n-1:
        执行的代码;
        break;
    default:
        执行代码n;
}

需求:

image-20240123170559109

System.out.println("==================================================");
        System.out.println("请输入星期:");
        String xingqi = sc.next();
        switch (xingqi) {
            case "周一":
                System.out.println("埋头苦干,解决bug");
                break;
            case "周二":
                System.out.println("请求大牛程序员帮忙");
                break;
            case "周三":
                System.out.println("今晚啤酒、龙虾、小烧烤");
                break;
            case "周四":
                System.out.println("主动帮新来的女程序员解决bug");
                break;
            case "周五":
                System.out.println("今晚吃鸡");
                break;
            case "周六":
                System.out.println("与王婆介绍的小芳相亲");
                break;
            case "周日":
                System.out.println("郁郁寡欢,准备上班");
                break;
            default:
                System.out.println("输入的星期不合法");
        }

// 语法版    
System.out.println("请输入星期:");
String xingqi = sc.next();
switch (xingqi) {
            case "周一" -> System.out.println("埋头苦干,解决bug");
            case "周二" -> System.out.println("请求大牛程序员帮忙");
            case "周三" -> System.out.println("今晚啤酒、龙虾、小烧烤");
            case "周四" -> System.out.println("主动帮新来的女程序员解决bug");
            case "周五" -> System.out.println("今晚吃鸡");
            case "周六" -> System.out.println("与王婆介绍的小芳相亲");
            case "周日" -> System.out.println("郁郁寡欢,准备上班");
            default -> System.out.println("输入的星期不合法");
        }

switch使用的注意事项:

image-20240123172532064

2、循环结构

2.1 for循环结构

快捷键产生for循环:fori

怎么快速将一段代码放入for循环中:ctrl+alt+t

        // 需求1:打印多行hello world
        for (int i = 0; i < 5; i++) {
            System.out.println("Hello World");
            System.out.println(i);
        }

        for (int i = 0; i < 5; i += 2) {  //这里的+号可以替换成*,-,/等等
            System.out.println("Hello World");
            System.out.println(i);
        }

        // 需求2:求1到100的奇数和
        int sum = 0;
        for (int i = 1; i <= 100; i += 2){
            sum  = sum + i;
        }
        System.out.println("1到100的奇数和为:" + sum);

2.2 while循环

while循环的格式:

        int i = 0;
        while (i < 5) {
            System.out.println("Hello World");
            i++;
        }

案例:

image-20240123191212913

        // 珠穆朗玛峰折纸案例
        double thickness = 0.1;// 单位毫米
        double peakHeight = 8848860;//单位毫米
        int count = 0;
        while (thickness < peakHeight) {
            thickness = thickness * 2;
            count = count + 1;
        }
        System.out.println("折叠的次数为:" + count);

2.3 for循环与while循环的对比

1、for循环能实现的,while循环也能实现。while循环能实现的,for循环也能实现,功能上没有区别。

2、在不知道循环次数的情况下,建议使用while循环解决更专业。一开始就知道循环次数的,用for循环来解决更专业。

2.4 do_while循环

        int i = 0;
        do {
            System.out.println("Hello World");
            i++;
        } while (i < 3);

格式入下:

image-20240123193441168

应用场景:当情况比较紧急的时候,例如抢票的时候,需要用到do_while循环,如果用for和while循环进行先判断的话票可能就会在判断是否有票的时候而错失,这个时候do_while循环先执行后判断的优势就体现出来了。

3、Scanner函数

Scanner函数:主要作用是获取到程序员从键盘中输入的数据,然后对获取到的数据进行操作处理。

格式:

// 创建一个从键盘获取信息的对象
Scanner sc = new Scanner(System.in);
// nextInt()代表输入的是int类型的数值
int i = sc.nextInt();
// next()代表输入的是字符串
String j = sc.next();

4、Random函数

Random函数:作用是产生随机数

格式:

        //1、导包
        //2、创建一个Random对象,用于生成随机数
        Random ran = new Random();
        //3、调用random所提供的功能,获取到随机数
        int data = ran.nextInt(10); //获取到一个随机整数,括号中填的数是生成随机数的范围,包前不包后
        System.out.println(data);

		//生成浮点型随机数
		double data = ran.nextDouble();
		//生成boolen类型的随机数
        boolean b = ran.nextBoolean();

如何生成指定区间的随机数:

方法一:减加法

int data = ran.nextInt(10) + 1; // 生成0-10之间的随机数

方法二:进1法

int data = ran.nextInt(11); // 生成0-10之间的随机数

5、总结案例

image-20240123202847375

import java.util.Random;
import java.util.Scanner;

public class Guessing_numbers {
    public static void main(String[] args) {
        //创建一个随机数对象
        Random ran = new Random();
        //创建一个键盘输入对象
        Scanner sc = new Scanner(System.in);
        //生成一个随机数
        int number = ran.nextInt(100) + 1;
        System.out.println(number);
        while (true) {
            System.out.println("请输入你猜测的数字:");
            //获取到从键盘中输入的数据
            int guess_number = sc.nextInt();
            if (number > guess_number) {
                System.out.println("猜小了!");
            } else if (number < guess_number) {
                System.out.println("猜大了!");
            } else {
                System.out.println("猜对了!");
                break;
            }
        }
    }
}
ess_number) {
                System.out.println("猜小了!");
            } else if (number < guess_number) {
                System.out.println("猜大了!");
            } else {
                System.out.println("猜对了!");
                break;
            }
        }
    }
}
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值