switch 和循环结构

2020-04-17  本文已影响0人  Forachange

switch case

格式:

switch  (变量) {
    case 常量1:
        处理方式1;
    break;
    case 常量2:
        处理方式2;
    break;
    ……
    case 常量n:
        处理方式n;
    break;
    defalt  :
        默认处理方式;
    break;
}

总结:

1.拿小括号里的变量与大括号里的常量进行匹配,匹配成功执行相应的处理方式,否则执行default的处理方式。
2.不能出现重复的case常量,否则无法判断执行哪一个case的处理方式,会报错,因为switch里面所有的case都是同级的。
3.break是用来结束整个switch case语句的运行的,如果漏写了会出现case穿透,switch case 语句会继续运行,直到遇到 break或者大括号}结束。
4.switch case 结构和if else if结构相似,if else if 适合与处理范围性数据,switch case 适合处理针对性数据

/*
switch case 演示点菜
1. 五顺斋烤鸭
2. 重庆/四川火锅
3. 擀面皮
4. 烤羊排
5. 佛跳墙(God Use VPN)
*/
import java.util.Scanner;
class Demo4 {
    public static void main(String[]   args) {
    // 这里需要一个int类型的变量 变量名choose
      int choose = 0;
      Scanner sc = new Scanner(System.in);
    // 展示菜单
      System.out.println("欢迎来到骚磊米其林十二星餐厅");
      System.out.println("1. 五顺斋烤鸭");
      System.out.println("2. 重庆/四川火锅");
      System.out.println("3. 擀面皮");
      System.out.println("4. 烤羊排");
      System.out.println("5. 佛跳墙(God UseVPN)");
      choose = sc.nextInt();
    // 使用switch case处理数据, 需要处理的数据是保存在 choose变量中,switch case结构对于choose进行处理
      switch (choose) {
    // case 1 这里是用于处理choose中数据为1的情况
        case 1:
    // 处理方式
        System.out.println("五顺斋烤鸭82RMB");
    // 跳出switch case结构
        break;
        case 2:
        System.out.println("重庆/四川火锅180RMB");
        break;
        case 3:
        System.out.println("擀面皮 5RMB");
        break;
        case 4:
        System.out.println("烤羊排 65RMB");
        break;
        case 5:
        System.out.println("佛跳墙(God UseVPN) 998RMB");
        break;
     // 以上所有的Case都没有运行的情况下,会执行 default
    // 保留的处理方式
        default:
        System.out.println("不好意思,您选择错误!!!");
        break;
      }
      }
}

循环结构

while 循环和do while 循环

while循环是先判断看是否执行循环体,do while 循环是先执行一次循环体再进行判断是否继续执行循环体

格式:

while (判断语句) {
    循环体;
    控制循环变量的语句;
}
do {
    循环体;
    控制循环变量的语句;
} while (判断语句);

演示:

while循环结构
展示数值 1 ~ 100
*/
class Demo7 {
      public static void main(String[] args) {
    // 定义循环使用的变量,int类型,初始化为1
    // 循环使用的变量名 i
        int i = 1;
        while (i <= 100) {
         System.out.println("i : " + i);
          i += 1;
        }
      }
}

/*
使用do - while循环展示大写字母A ~ Z
*/
class Demo11 {
        public static void main(String[] args) {
/*
这里循环操作使用的是一个字符类型的变量需要定义一个变量 char类型 变量名叫做 ch初始化数为'A'
*/
          char ch = 'A';
          do {
            System.out.println("ch : " + ch);
            ch += 1; 
          /*
           正确操作 计算机会自动完成数据转换过程,保证ch是char类型自增操作,也是同类型自增
           ch = ch + 1; 错误操作,并且不推荐强制类型转换
           1 默认是一个int类型,char类型数据+int类型数据 ==> int类型
            ch 是一个char类型,无法保存一个int类型数据,没有做到【数据类型一致化要求】
          */
          } while (ch <= 'Z');
      }
}

循环和分支的嵌套

可以先写好一个循环语句,然后把分支语句放到循环体的位置

演示:

/*
使用while循环,完成一个点菜系统
1. 完成用户的点菜功能
2. 点菜之后输出总价
3. 用户指定方式退出
*/
import java.util.Scanner;
        class Demo13 {
              public static void main(String[] args) {
/*
这里需要一个变量 int类型,作为用户的选择变量名 choose
*/
                int choose = 0;
/*
计算得到总价格,int类型,变量名为 total
*/
                int total = 0;
/*
准备一个Scanner类型的变量,用于从键盘上获取用户输入的数据
*/
                Scanner sc = new Scanner(System.in);
                System.out.println("欢迎来到骚磊老酒馆");
                System.out.println("1. 青岛啤酒 8RMB");
                System.out.println("2. 野格 88RMB");
                System.out.println("3. 江小白 25RMB");
                System.out.println("4. 乌苏 6RMB");
                System.out.println("5. 1664 18RMB");
                System.out.println("6. 下单");
/*
用户输入6终止循环,如果不是6,继续循环
*/
                while (choose != 6) {
                    choose = sc.nextInt();
                    switch (choose) {
                        case 1:
                        System.out.println("1. 青岛啤酒8RMB");
                        total += 8;
                        break;
                        case 2:
                        System.out.println("2. 野格88RMB");
                        total += 88;
                        break;
                        case 3:
                        System.out.println("3. 江小白25RMB");
                        total += 25;
                        break;
                        case 4:
                        System.out.println("4. 乌苏6RMB");
                        total += 6;
                        break;
                        case 5:
                        System.out.println("5. 166418RMB");
                        total += 18;
                        break;
                        case 6:
                        System.out.println("6. 下单");
                        break;
                        default:
                        System.out.println("选择错误");
                        break;
                    }
                }
 System.out.println("本场消费 : " + total);
        }
}

循环过程中需要注意无限循环问题,控制无限循环问题的出现。一定要保证循环条件有效性或者代码中存在一个跳出循环的机制。

上一篇下一篇

猜你喜欢

热点阅读