Java中的选择结构

目录

一、if选择结构

1.1 if单分支结构

1.2 if -else双分支结构

1.3 多分支if选择结构

1.4 嵌套if选择结构

二、switch选择结构


一、if选择结构

1.1 if单分支结构

语法结构:

                  if(条件){
                         代码块
                  }

执行规律:
                  如果条件为true,执行{}里的代码块,执行完代码块之后,继续执行{}后面的代码
                  如果条件为false,则跳过if选择结构,执行{}后面的代码

条件最终结果应该是布尔值,要么为true要么为false

1.2 if -else双分支结构

语法结构:
                  if(条件){
                          //代码块1
                  }else{
                          //代码块2
                  }
执行规律:
                  如果条件为true,执行代码块1,执行完代码块1后,结束整个if-else结构,继续往后执行if-else结构后面的代码。
                  如果条件为false,执行代码块2,执行完代码块2后,结束整个if-else结构,继续往后执行if-else结构后面的代码。

1.3 多分支if选择结构

多分支if选择结构
              语法结构:
                  if(条件1){
                      //代码块1;
                  }else if(条件2){
                      //代码块2;
                  }else if(条件3){
                      //代码块3;
                  }
                  ....
                  }else{
                      代码块n;
                  }
              执行规律:
                  判断条件1,如果条件1为true,则执行代码块1,执行完代码块1,结束整个if-else-if结构,执行if-else-if结构后面的代码
                  如果条件1为false,则继续往下判断条件2,如果条件2为true,则执行代码块2,执行完代码块2,结束整个if-else-if结构,执行if-else-if结构后面的代码
                  如果条件2位false,则继续往下判断条件3,如果条件3位true,则执行代码块3,执行完代码块3,结束整个if-else-if结构,执行if-else-if结构后面的代码
                  如果条件3为false,则继续......
                  如果所有条件都不满足,则执行else{}里的代码块n
         
          注意:
                  (1)所有的条件都为布尔值
                  (2)else if可以有很多个
                  (3)else是可以省略不写,当所有的条件都不满足,并且没有else的时候,则整个if-else-if结构里代码的都不会执行

1.4 嵌套if选择结构

语法结构:

                if(条件){

                      if(条件){

                                代码块
                      }else if(条件){

                                代码块
                      }else{

                                代码块
                      }
                }else{

                     代码块
                }

嵌套if选择结构即是一个if选择结构中包含另外的一个或多个if选择结构。

应用:用if嵌套循环来判断用户输入的三条边是什么样式的三角形

package com.test;

import java.util.Scanner;

public class Test10 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请依次输入三条边:");
        double a = sc.nextDouble();
        double b = sc.nextDouble();
        double c = sc.nextDouble();
        if(a+b>c && a+c>b && b+c>a){
            if(a==b && a==c && b==c){
                System.out.println("这是一个等边三角形");
            }else if(a==b || a==c || b==c){
                System.out.println("这是一个等腰三角形");
            }else if(a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a){
                System.out.println("这是一个直角三角形");
            }else{
                System.out.println("这是一个普通三角形");
            }
        }else{
            System.out.println("这不是一个三角形");
        }

    }
}

二、switch选择结构

switch选择结构:
              语法结构:
                  switch(表达式){
                      case 常量1:
                          //语句1
                          break;
                      case 常量2:
                          //语句2
                          break;
                      case 常量3:
                          //语句3
                          break;
                      ..........
                      case 常量n:
                          //语句n
                          break;
                      default:
                          //语句m;
                          break;
                  }
              执行规律:
                  根据表达式的值去匹配case后面的常量值,匹配上了就执行对应的语句,执行完对应语句后,执行break,结束整个switch结构,继续往下执行switch选择结构之后的代码
                  如果表达式的值与所有的常量值都不匹配,就执行default里面的语句,执行完以后执行break退出整个switch选择结构、
         
          注意:
              1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK1.7及以后支持)
              2)case后面的常量值不能相同
              3)default语句可以省略不写。如果写上表示表达式的值与所有常量值不匹配,就执行default里的语句。default语句可以写在任意位置,一般写在switch的末尾位置
              4)switch选择结构只能处理等值判断的情况
              5)break的作用是结束整个switch选择结构,如果缺少,代码会继续向下执行,执行下一个case里的语句,这种现象称之为“case穿透”现象。case穿透现象可以合理使用

 case穿透现象的应用:用户键盘输入月份,控制台输出对应季节

当输入对应季节月份时,前面的月份可以不输出,到最后对应月份时再输出,此程序借助case穿透现象可大幅度缩短代码量。

package com.test;

import java.util.Scanner;

public class Test17 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入月份:");
        int month = sc.nextInt();
        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("输入月份错误");
                break;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值