JAVA基础-程序流程控制

目录

1.分支结构

1.1 if分支

1.2 switch分支

 1.3 switch注意事项

 2.循环结构

2.1 for循环

2.2 while循环

 2.3 do-while循环

2.4死循环

2.5 跳转语句 break 、continue

3.生成随机数

3.1 如何产生一个随机数


1.分支结构

1.1 if分支

if的第一种形式:

// 需求:测量用户体温,发现体温高于37度就报警。
double t = 36.9;
if(t > 37){
    System.out.println("这个人的温度异常,把他赶紧带走~~");
}

如果if格式中,如果只有一行代码,可以省略大括号。(不建议,可读性不好)

if的第二种形式:

// 需求2:发红包,你的钱包余额是99元,现在要发出90元
// 如果钱够触发发红包的动作,如果钱不够,则提示:余额不足。
double money = 19;
if(money >= 90){
    System.out.println("发红包成功了~");
}else {
    System.out.println("余额不足~~");
}

 if的第三种形式:

// 需求3:某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。[0,60) D  [60,80) C [80,90) B [90,100] A
int score = 298;
if(score >= 0 && score < 60) {
    System.out.println("您的绩效级别是: D");
}else if(score >= 60 && score < 80){
    System.out.println("您的绩效级别是: C");
}else if(score >= 80 && score < 90){
    System.out.println("您的绩效级别是: B");
}else if(score >= 90 && score <= 100){
    System.out.println("您的绩效级别是: A");
}else {
    System.out.println("您录入的分数有毛病~~");
}

1.2 switch分支

String week = "周三";
switch (week){
    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("您输入的星期信息不存在~~~");
}

if 、switch如何选择

如果单从功能上来讲,if 分支 的功能是更加强大的,switch分支能做的事情if 分支都能做。但是具体用哪一种分支形式,也是有一些使用原则的。

- 如果是对一个范围进行判断,建议使用if分支结构
- 如果是与一个一个的值比较的时候,建议使用switch分支结构(值匹配时性能更好,格式良好、代码优雅)

 1.3 switch注意事项

- 1.表达式类型只能是byte、short、int、char
    JDK5开始支持枚举,JDK7开始支持String
    不支持double、float、long
    
- 2.case给出的值不允许重复,且只能是字面量,不能是变量。
        
- 3.正常使用switch的时候,不要忘记写break,否则会出现穿透现象。

 演示case后面的值,只能是字面量不能是变量

 计算机运算小数的方案本身就不精确。

System.out.println(0.1 + 0.2);

输出结果为:0.30000000000004

原因是小数部位也是用1/2、1/4、1/8拼装成0.3,但是他们并不能完整的拼装成0.3,只能无限的接近0.3。

所以switch里面不支持小数

演示case穿透现象

当switch语句中没有遇到break,就会直接穿透到下一个case语句执行,直到遇到break为止。

这种语法设计也是有它的用处的,当多个case语句想要执行同一段代码时,可以利用case穿透现象,提高代码复用性。

 

 2.循环结构

2.1 for循环

//for循环格式:
for (初始化语句; 循环条件; 迭代语句) {
    循环体语句(重复执行的代码);
}

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

初始化语句:一般是定义一个变量,并给初始值
循环条件:一般是一个关系表达式,结果必须是true或者false
迭代语句:用于对条件进行控制,一般是自增或者自减
循环语句体:需要重复执行的代码

2.2 while循环

 2.3 do-while循环

 

1. for循环 和 while循环(先判断后执行); 
   do...while (先执行后判断)
2.for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。已知次数用for,不清楚循环多少次使用while。
3 .for循环中控制循环的变量只在循环中使用
  while循环中,控制循环的变量在循环后还可以继续使用

2.4死循环

//for死循环
for ( ; ; ){
    System.out.println("Hello World1");
}

//while死循环
while (true) {
    System.out.println("Hello World2");
}

//do-while死循环
do {
    System.out.println("Hello World3");
}while (true);

死循环有什么应用场景呢?

最典型的是可以用死循环来做服务器程序, 比如百度的服务器程序就是一直在执行的,你随时都可以通过浏览器去访问百度。如果哪一天百度的服务器停止了运行,有就意味着所有的人都用不了百度提供的服务了。

对于这样的应用我们目前了解一下就可以了。对于目前来说我们只要知道代码格式该怎么写,能达到什么效果就行。

2.5 跳转语句 break 、continue

想要在循环过程中提前跳出循环需要用到跳转语句,需要用到breakcontinue两个关键字

  • break作用:跳出并结束当前所在循环的执行,只能用于循环结束或者结束所在switch分支的执行

  • continue作用:结束本次循环,进入下一次循环,只能在循环中使用

3.生成随机数

3.1 如何产生一个随机数

生成随机数的功能,其实 Java已经给我们提供了,在JDK中提供了一个类叫做Random,我们只需要调用Random这个类提供的功能就可以了。

 

 java中大多数边界都是包左不包右

// 目标:掌握使用Random生成随机数的步骤。
// 1、导包。import java.util.Random; (idea会自动完成)
import java.util.Random;
public class RandomDemo1 {
    public static void main(String[] args) {
        // 2、创建一个Random对象,用于生成随机数。
        Random r = new Random();
        // 3、调用Random提供的功能:nextInt得到随机数。
        for (int i = 1; i <= 20; i++) {
            int data = r.nextInt(10); // 0 - 9
            System.out.println(data);
        }
    }
}

 在jdk17版本及以后才能输出一个固定的范围有两个边界值,而目前大部分企业用的都是jdk8或者jdk11他们只有一个边界值,生成随机数这里有一个技巧,减加法

 如果要输入范围1-10的随机数---> -1 ---> (0 - 9)+1

Random r = new Random();
int number = r.nextInt(10) + 1; //1-10

生成随机数我们可以使用一个快捷键:

new Random()+ . var就会自动生成 Random random = new Random();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值