顺序结构和分支结构

167 阅读1分钟

这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战 | 创作学习持续成长,夺宝闯关赢大奖 - 掘金 (juejin.cn)

(四)顺序结构

程序从上到下逐行地执行,中间没有任何判断和跳转。

image.png

(五)分支结构

1.if-else

(1)if语句格式

image.png

image.png

image.png

/*
分支结构中的if-else(条件判断结构)
​
​
一、三种结构
​
第一种:
if(条件表达式){
    执行表达式
}
​
第二种:二选一
if(条件表达式){
    执行表达式1
}else{
    执行表达式2
}
​
第三种:n选一
if(条件表达式){
    执行表达式1
}else if(条件表达式){
    执行表达式2
}else if(条件表达式){
    执行表达式3
}
...
else{
    执行表达式n
}
​
​
​
*/
class IfTest {
    public static void main(String[] args) {
        
        //举例1
        int heartBeats = 79;
        if(heartBeats < 60 || heartBeats > 100){
            System.out.println("需要做进一步检查");
        }
​
        System.out.println("检查结束");
        
        //举例2
        int age = 23;
        if(age < 18){
            System.out.println("你还可以看动画片");
        }else{
            System.out.println("你可以看成人电影了");
        }
​
        //举例3
        if(age < 0){
            System.out.println("您输入的数据非法");
        }else if(age < 18){
            System.out.println("青少年时期");
        }else if(age < 35){
            System.out.println("青壮年时期");
        }else if(age < 60){
            System.out.println("中年时期");
        }else if(age < 120){
            System.out.println("老年时期");
        }else{
            System.out.println("你是要成仙啊~~");
        }
    }
}
​

(2.)使用说明

 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量

 语句块只有一条执行语句时,一对{}可以省略,但建议保留

 if-else语句结构,根据需要可以嵌套使用

 当if-else结构是“多选一”时,最后的else是可选的,根据需要可以省略

 当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓 当多个条件是“包含”关系时,“小上大下 / 子上父下”

2.switch

(1)格式

image.png

/*
分支结构二:switch-case
​
1.格式
switch(表达式){
    case 常量1:执行语句1;//break;
    case 常量2:执行语句2;//break;
    ...
    default:执行语句n;//break;
}
​
*/class SwitchCaseTest{
    public static void main(String[] args){
        int number = 2;
        switch(number){
            case 0:System.out.println("zero");break;
            case 1:System.out.println("one");break;
            case 2:System.out.println("two");break;
            default:System.out.println("other");
        }
​
        String season = "summer";
        switch (season) {
        case "spring":
        System.out.println("春暖花开");
        break;
        case "summer":
        System.out.println("夏日炎炎");
        break;
        case "autumn":
        System.out.println("秋高气爽");
        break;
        case "winter":
        System.out.println("冬雪皑皑");
        break;
        default:
        System.out.println("季节输入有误");
        break;
}
    }
}

(2)说明

  • 根据switch表达式中的值,依次匹配各case值,一旦匹配成功则进入case的执行语句。
  • 当执行完当前语句后会继续执行,知道遇到break或程序结束。break可以表示在switch-case结构中,表示跳出当前结构。
  • switch结构中的表达式,只能是byte\short\char\int\枚举类型(JDK5.0)、String类型(JDK7.0)
  • case之后只能声明一个常量,不能声明一个范围。
  • break关键字是可选的。
  • default相当于if-else中的else。default是可选的,位置是灵活的。

3.switch和if-else对比

  • 如果判断的具体数值不多,而且符合byte、short 、char、int、String、枚举等几 种类型。虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
  • 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。 也就是说,使用switch-case的,都可以改写为if-else。反之不成立。

4.Scanner和随机数

/*
如何从键盘获取不同类型的变量:需要使用Scanner类
​
具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(next() / nextXxx()),来获取指定类型的变量
​
注意:
需要根据相应的方法,来输入指定类型的值。如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException
导致程序终止。
*/
//1.导包:import java.util.Scanner;
import java.util.Scanner;
​
class ScannerTest{
    
    public static void main(String[] args){
        //2.Scanner的实例化
        Scanner scan = new Scanner(System.in);
        
        //3.调用Scanner类的相关方法
        System.out.println("请输入你的姓名:");
        String name = scan.next();
        System.out.println(name);
​
        System.out.println("请输入你的芳龄:");
        int age = scan.nextInt();
        System.out.println(age);
​
        System.out.println("请输入你的体重:");
        double weight = scan.nextDouble();
        System.out.println(weight);
​
        System.out.println("你是否相中我了呢?(true/false)");
        boolean isLove = scan.nextBoolean();
        System.out.println(isLove);
​
        //对于char型的获取,Scanner没有提供相关的方法。只能获取一个字符串
        System.out.println("请输入你的性别:(男/女)");
        String gender = scan.next();//"男"
        char genderChar = gender.charAt(0);//获取索引为0位置上的字符
        System.out.println(genderChar);
        
​
    }
​
}

如何获取一个随机数

Math.random()//0-1

class RandomTest{
    //如何获取一个随机数10-99
    public static void main(String[] args){
    int value = (int)(Math.random() * 90 + 10);//[0.0,1.0]--> [10.0,100.0)-->[10,99]
    //公式:[a,b]:(int)(Math.random()*(b-a+1)+a)
​
    System.out.println(value);
    }
}