您的位置 首页 java

从零开始学Java-003-选择控制语句

流程控制——选择控制语句

如果….那么…..另外情况…..

掌握if条件语句

掌握if…else条件语句

掌握嵌套if…else条件语句

掌握多重if条件语句

掌握switch分支语句

选择控制语句

什么是选择控制语句

选择控制语句也称为“分支语句”,有特定的语法结构,代码执行要根据具体的逻辑运算进行判断。因为逻辑运算的结果是布尔值,即true或false,所以逻辑运算的结果值为true时,则执行对应的代码,否则不执行。选择控制语句的流程如图所示。

Java提供了两种选择控制语句,分别是if语句和switch分支语句

if语句分为if条件语句,if…else 条件语句,多重if条件语句3种形式。

if条件语句

if条件语句是根据条件判断再做处理的一种语法结构

 if(条件){
      代码块;
}  
     public static void main(String[] args) {
        int a = 100;
        int b = 20;

        if (a < b) {
            System.out.println(a + "小于" + b);
        }
        System.out.println("if 结束");
    }  

if…else 条件语句

if…else条件语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。

 public static void main(String[] args) {
    //定义一个整型的变量a,并赋值为100
    int a = 100;
    int b = 200;

    //如果变量a小于变量b,则输出打印a小于b
    if (a < b) {
        System.out.println(a + "小于" + b);
    } //否则,则输出打印a大于b
    else {
        System.out.println(a + "大于" + b);
    }
    //if语句结束,输出"if 结束"
    System.out.println("if 结束");
}  

例如,判断一个 正整数 的奇偶性,如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。

 public static void main(String[] args) {
    //判断一个正整数的奇偶性,
    // 如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。
    System.out.print("请输入一个整数:");
    Scanner scan = new Scanner(System.in);
    int num = scan.nextInt();

    if (num%2==0){
        System.out.println(num+"是偶数");
    } else {
        System.out.println(num+"是奇数");
    }
}  

嵌套if…else 条件语句

嵌套if条件语句就是if条件语句里面再嵌入if语句。

 if(条件1){
    if(条件2){
       代码块1
    }else{
        代码块2
    }
}else{
    代码块3
}  
 public static void main(String[] args) {
    //判断一个正整数的奇偶性,
    // 如果该数字能被2整除则是一个偶数,否则该数字就是一个奇数。
    System.out.print("请输入一个整数:");
    Scanner scan = new Scanner(System.in);
    int num = scan.nextInt();

    if (num%2==0){
        if (num==0){
            System.out.println(num+"是非偶数非奇数");
        }else {
            System.out.println(num+"是偶数");
        }
    } else {
        System.out.println(num+"是奇数");
    }
}  

多重if条件语句

多重if条件语句用于对多个条件进行判断,进行多种不同的处理

  if(条件1){
    代码块1
}else if(条件2){
   代码块2
}else{ 
   代码块3
}  

对学生的考试成绩进行等级的划分,如果分数大于90分,等级为优秀,否则,如果分数大于70分,等级为良好,否则,如果分数大于60分,等级为合格,否则,等级为不及格?

 public static void main(String[] args) {
    //对学生的考试成绩进行等级的划分,
    // 如果分数大于90分,等级为优秀,
    // 否则,如果分数大于70分,等级为良好,
    // 否则,如果分数大于60分,等级为合格,
    // 否则,等级为不及格?

    System.out.print("请输入一个分数:");
    Scanner scan = new Scanner(System.in);
    int score = scan.nextInt();

    if (score > 90) {
        System.out.println("优秀");
    } else if (score > 70) {
        System.out.println("良好");
    } else if (score > 60) {
        System.out.println("合格");
    } else {
        System.out.println("不合格");
    }
}  

案例

年龄,小于12-儿童,大于12-少年,大于18-青少年,大于30-青年,大于45-中年人,大于60的-老年人

使用多重if条件语句的时候,要把范围小的情况放在范围大的前面

 public static void main(String[] args) {
    //年龄,小于12-儿童,大于等于12-少年,
    // 大于等于18-青少年,大于等于30-青年,
    // 大于等于45-中年人,大于等于60的-老年人

    System.out.print("请输入一个年龄:");
    Scanner scan = new Scanner(System.in);
    int age = scan.nextInt();
    if (age >= 60) {
        System.out.println("老年");
    } else if (age >= 45) {
        System.out.println("中年");
    } else if (age >= 30) {
        System.out.println("青年");
    } else if (age >= 18) {
        System.out.println("青少年");
    } else if (age >= 12) {
        System.out.println("少年");
    } else if (age > 0 && age < 12) {
        System.out.println("儿童");
    }else {
        System.out.println("数据有问题");
    }
}  

switch分支语句

要实现更多的选择逻辑,就需要更深层次的if嵌套条件语句。但是采用这种方式不仅繁琐,而且程序的可读性也不高。针对这样的情况,Java语言提供了另一种可供 多路选择的switch分支语句

 switch (表达式){
    case 值1:
        代码块1;
        [ break ;]
        ……
    case 值n:
       代码块n;
       [break;]

    default:
        代码块n+1;
}  

switch语句中需要注意以下5点。

(1)判断表达式的类型只能是byte、short、char、int、String和enmu(枚举)这6种数据类型

(2)case语句可以为任意多个,并且case后的选择必须是直接值,而不能是变量,且不能有相同的选择值(多个case语句后面的值均不能相同)。

(3)代码块部分的语句可以分一条或多条。

(4) break关键字的作用是结束switch分支语句,break语句为可选。

(5)default语句并不是一定写在最后,可以放在switch分支语句块中的任意位置,不在最后是需要添加break语句。

案例

根据数字来输出中文格式的星期?

 public static void main(String[] args) {
    // 根据数字来输出中文格式的星期?
    System.out.print("请输入一个星期数字:");
    Scanner scan = new Scanner(System.in);
    int day = scan.nextInt();
    if (day == 1) {
        System.out.println("一");
    } else if (day == 2) {
        System.out.println("二");
    } else if (day == 3) {
        System.out.println("三");
    } else if (day == 4) {
        System.out.println("四");
    } else if (day == 5) {
        System.out.println("五");
    } else if (day == 6) {
        System.out.println("六");
    } else if (day == 7) {
        System.out.println("七");
    } else {
        System.out.println("数据异常");
    }
}  
 public static void main(String[] args) {
    // 根据数字来输出中文格式的星期?
    System.out.print("请输入一个星期数字:");
    Scanner scan = new Scanner(System.in);
    int day = scan.nextInt();

    switch (day){
        case 1:
            System.out.println("一");
            break;
        case 2:
            System.out.println("2");
            break;
        case 3:
            System.out.println("3");
            break;
        case 4:
            System.out.println("4");
            break;
        case 5:
            System.out.println("5");
            break;
        case 6:
            System.out.println("6");
            break;
        case 7:
            System.out.println("7");
            break;
        default:
            System.out.println("数据异常");
    }
}  

switch分支语句与多重if条件语句的区别

(1)相同点:都可以实现多分支结构。

(2)不同点:①switch分支语句只能处理等值的条件判断,且条件是整型变量、字符变量、enum、String的等值判断;②多重if条件语句用于对多个条件进行判断,特别适合某个区间值的条件判断。

案例

商场购物可以打折,具体办法如下:普通顾客购物打9折;会员购物满100元打8折,满200元打7.5折。使用嵌套if进行实现。

 public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入是否是会员:是(y)/否(其他字符)");
    String identity = input.next();
    System.out.println("请输入购物金额:");
    double money = input.nextDouble();
    if (identity.equals("y")) { //会员
        if (money > 200) { //金额大于200
            money = money * 0.75;
        } else { //金额小于200
            money = money * 0.8;
        }
    } else { //非会员
        if (money > 100) {
            money = money * 0.9;
        }
    }
    System.out.println("实际支付:" + money);
}  

小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明 的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。

 public static void main(String[] args) {
    //小明的考试成绩未知,可以使用键盘录入的方式获取值
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个分数:");
    int score = sc.nextInt();
    //由于奖励种类较多,属于多种判断,采用if...else...if格式实现
    //为每种判断设置对应的条件
    //为每种判断设置对应的奖励
    //数据测试:正确数据,边界数据,错误数据
    if (score > 100 || score < 0) {
        System.out.println("你输入的分数有误");
    } else if (score >= 95 && score <= 100) {
        System.out.println("山地自行车一辆");
    } else if (score >= 90 && score <= 94) {
        System.out.println("游乐场玩一次");
    } else if (score >= 80 && score <= 89) {
        System.out.println("变形金刚玩具一个");
    } else {
        System.out.println("胖揍一顿");
    }
}  

一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季 节,并输出。

 public static void main(String[] args) {
    //键盘录入月份数据,使用变量接收
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个月份:");
    int month = sc.nextInt();
    //case穿透
    switch (month) {
        case 1:
        case 2:
        case 12:
            System.out.println("冬季");
            break;
        case 3:
        case 4:
        case 5:
            System.out.println("春季");
            break;
        case 6:
        case 7:
        case 8:
            System.out.println("夏季");
            break;
        case 9:
        case 10:
        case 11:
            System.out.println("秋季");
            break;
        default:
            System.out.println("你输入的月份有误");
    }
}  

文章来源:智云一二三科技

文章标题:从零开始学Java-003-选择控制语句

文章地址:https://www.zhihuclub.com/195242.shtml

关于作者: 智云科技

热门文章

网站地图