if else 判断、三目运算符、switch case匹配

java 选择结构 ---- if else 判断

需求:如果今天下雨那么我们今天就不上课。

  1. 分析:如果(今天下雨) 今天下雨是条件 条件满足 执行不上课,结果不成立执行 今天上课。
  2. 程序:用 if (布尔值){代码 } else {代码}
    if(boolean){code}判断结果,成立输出if,否则输出else
  3. boolean结果为true执行code boolean,结果为false执行输出else

运行过程

package com.lihaozhe.javase.day03.bean;

import org.junit.jupiter.api.Test;

/**
 * @author xhj
 * @version 1.0.0 2022/4/12 下午4:22
 */
public class Demo01 {
		
    @Test
    public void test01(){
     //我们先赋值code,执行一个布尔值。
     //程序运行至此会先判断布尔结果是否成立,成立为true不成立为false
      boolean code = true;//重点是布尔值的结果,影响执行的结果
     //用if进行判断,会得到2种结果成立,或不成立,我们的结果为true
     //结果为成立,则会执行“今天不上课”---else的结果会直接跳过,输出程序结束
     //结果为不成立,则会执行“今天上课”---判断后直接输出else的结果,输出程序结束
     
        if(code){        //true 输出结果
            System.out.println("今天不上课");
        }else {         //false 输出结果
            System.out.println("今天上课");
        }
              System.out.println("程序结束");
    }
  }
    
运行结果:
        今天不上课
        程序结束

三目运算符

需求:判断性别是男孩还是女孩

分析:我们先设置2个变量
一个是布尔值gender性别
二是字符串sex空值
通过if判断,对两个变量进行关联
·if(布尔值){对sex赋值}
· else {对sex赋值}
通过判断if的结果选择执行sex的值

如果gender的值为true则sex的值为 男孩
如果gender的值为false则sex的值为 女孩

@Test
    public void test02(){
        boolean gender = false;//为布尔gender赋值
        String sex;           //字符串空值
        if(gender){           //判断gender的值如果是true执行sex男孩
            sex = "男孩";
        }else {               //判断gender的值如果是false执行sex女孩
            sex = "女孩";
        }
        System.out.println("性别是--->"+ sex);//最后输出,根据判断的结果输出sex的值
		System.out.println("程序结束");

    }
}

运行结果:
        性别是--->女孩
        程序结束
 //-------------------------------------------       
 对程序进行优化:      
         @Test
    public void test03(){
        boolean gender = false; //布尔赋值gender
        String sex = gender == true? "男孩":"女孩";
	//执行顺序首先sex= 代表需要值
	//判断gender==true? 表示判断gender的结果是true还是false
	//"男孩":"女孩";将判断的结果将值赋给sex
	//根据gender的值,问gender==true?是否成立,成立就是true将“男孩”赋值给sex,
	//如果不成立就是false,就将“女孩”赋值给sex
        System.out.println("性别是--->"+ sex);
		System.out.println("程序结束");
    }
}
运行结果:
        性别是--->女孩
        程序结束

分支结构二

多重if

需求:
随机生成0到7之间不包含7的整数 0 1 2 3 4 5 6
如果这个数字是0 则输出今天是星期日 如实是1则输出星期一 如果是2则输出星期二 以此类推

package com.lihaozhe.javase.day03.bean;

import org.junit.jupiter.api.Test;

/**
 * @author 徐海杰
 * @version 1.0.0 2022/4/12 下午4:22
 */
public class Demo01 {
    @Test
    public void test01(){  //缺点是每个程序都要计算,进行遍历,性能不好
     	Random random = new Random();
        int i = random.nextInt(7);//生成随机数,7以内的随机数,赋值给i
        System.out.println(i);//输出随机数i
       
        if (i == 0) {
            System.out.println("星期日");
        }
        if (i == 1) {
            System.out.println("星期一");
        }
        if (i == 2) {
            System.out.println("星期二");
        }
        if (i == 3) {
            System.out.println("星期三");
        }
        if (i == 4) {
            System.out.println("星期四");
        }
        if (i == 5) {
            System.out.println("星期五");
        }
        if (i == 6) {
            System.out.println("星期六");
        }
        System.out.println("程序执行结束");
    }
    运行结果:
            5
            星期五
            程序执行结束
//------------------------------------------------------
优化程序
@Test
    public void test02() {
        // 需求:
        // 随机生成0到7之间不包含7的整数 0 1 2 3 4 5 6
        // 如果这个数字是0 则输出今天是星期日 如实是1则输出星期一 如果是2则输出星期二 以此类推
        //使用if,else判断随机数结果如果是随机数是3,星期三,则排查到3下面的程序就直接跳过,如果是随机数是6,星期六,则排查到6,一样都进行遍历,缺点也是不稳定。
        Random random = new Random();
        int i = random.nextInt(7);
        System.out.println(i);
        if (i == 1) {
            System.out.println("星期一");
        } else if (i == 2) {
            System.out.println("星期二");
        } else if (i == 3) {
            System.out.println("星期三");
        } else if (i == 4) {
            System.out.println("星期四");
        } else if (i == 5) {
            System.out.println("星期五");
        } else if (i == 6) {
            System.out.println("星期六");
        } else {
            System.out.println("星期日");
        }
        System.out.println("程序执行结束");
    }
运行结果:
            5
            星期五
            程序执行结束
//-----------------------------------------------------            

分支结构 switch case匹配

分析:随机数i:switch(i)
1、用case的值去跟switc随机数匹配
2、如case是1则输出星期一以此类推,如都匹配不上
则匹配默认值default输出,星期天
3、default类似于if里的else
4、如果随机数是4匹配到4 星期四,5、6、7后面的结果也会输出
在输出后加 break终止5、6、7的代码执行 防止程序穿透。

@Test
    public void test04() {
        // 需求:
        // 随机生成0到7之间不包含7的整数 0 1 2 3 4 5 6
        // 如果这个数字是0 则输出今天是星期日 如实是1则输出星期一 如果是2则输出星期二 以此类推
        Random random = new Random();
        int i = random.nextInt(7);
        System.out.println(i);
        switch (i) {   //得到一个随机数
            case 1:     //用case1的值匹配i的随机数
                System.out.println("星期一"); //如果匹配成功后输出
                break;  //终止.防止代码穿透
            case 2:
                System.out.println("星期二");
                break;
            case 3:
                System.out.println("星期三");
                break;
            case 4:
                System.out.println("星期四");
                break;
            case 5:
                System.out.println("星期五");
                break;
            case 6:
                System.out.println("星期六");
                break;
            default:           //如果以上都匹配不上则默认输出default的值
                System.out.println("星期日");
                break;
        }
        System.out.println("程序执行结束");
    }
    

 运行结果:
            6
			星期六
			程序执行结束

//----------------------------------------------------
      //这种写发不用break防止代码穿透但仅仅高版本JDK支持
    @Test
    public void test05() {
       
        Random random = new Random();
        int i = random.nextInt(7);
        System.out.println(i);
        switch (i) {
            case 1 -> System.out.println("星期一");
            case 2 -> System.out.println("星期二");
            case 3 -> System.out.println("星期三");
            case 4 -> System.out.println("星期四");
            case 5 -> System.out.println("星期五");
            case 6 -> System.out.println("星期六");
            default -> System.out.println("星期日");
        }
        System.out.println("程序执行结束");
    }
}
运行结果:
           3
			星期三
			程序执行结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值