java基础---选择结构(二)

1.为什么使用switch选择结构?

能够解决一些:条件为等值判断

2.什么是switch选择结构?

switch (表达式) {

         case 常量 1:

           语句;

                              break;

        case 常量 2:

           语句;

                              break;

       …

       default:

          语句;

                           break;

     }

3.如何使用switch选择结构?

举例:

int mingCi = 1;

switch (mingCi) {

      case 1:

                 System.out.println("参加麻省理工大学组织的1个月夏令营");

                 break;

     case 2:

                 System.out.println("奖励惠普笔记本电脑一部");

                 break;

     case 3:

                System.out.println("奖励移动硬盘一个");

                break;

  default:

                System.out.println("没有任何奖励 ");

 }

 结果:参加麻省理工大学组织的1个月夏令营

4.Switch常见错误?

1)如果需要每个case执行完后跳出,在每个case后不要忘记写break; (结束分支)

2)case后面的常量必须各不相同   (case 2: ...  case 2:..)

3)default块顺序可以变动,但要注意其执行顺序;通常,default块放在末尾,也可以省略

5.比较switch和多重if选择结构?

多重if比switch使用的范围更广一些,不仅可以处理等值的情况,还可以处理区间的

switch 只能处理条件判断  (有区间的使用if,没有区间限制的使用switch)

相同点:比较switch和多重if选择结构

不同点:switch选择结构,只能处理等值条件判断的情况,而且条件必须是整型

变量或字符型变量或字符串

多重if选择,没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况

举例:自动拨号

public class Case1 {

public static void main(String[] args) {

 Scanner input=new Scanner(System.in);

        System.out.println("请选择..");

        int choice=input.nextInt();

switch(choice){

case 1:

         System.out.println("拨打爸爸的手机");

         break;

case 2:

         System.out.println("拨打妈妈的手机");

         break;

case 3:

         System.out.println("拨打爷爷的手机");

         break;

case 4:

        System.out.println("拨打爷爷的手机");

        break;

default:

      System.out.println("拨打cuowu");

      }

   }

}

练习:菜单跳转

import java.util.Scanner;

import javax.print.DocFlavor.INPUT_STREAM;

public class Case2 {

public static void main(String[] args) {

      Scanner input=new Scanner(System.in);

      System.out.println("欢迎使用我行我素管理系统");

      System.out.println("1.登陆系统");

      System.out.println("2.退出");

     System.out.println("请选择....");

 

     int choice=0;

     choice=input.nextInt();

     if(choice==1){ 

                  System.out.println("登陆系统");

                  System.out.println("1.客户信息管理2.购物结算3.真情回馈4.注销");

                  System.out.println("请选择....");

                  int b=1;

                  b=input.nextInt();

                  switch(b){

                  case 1:

                           System.out.println("1.购物系统管理>>客户信息管理");

                           System.out.println("1.显示所有客户信息2添加客户信息3.修改客户信息4.查询客户信息");

                           System.out.println("请选择....");

                          break;

                 case 2:

                          System.out.println("2.购物结算");

                          break;

                  case 3:

                         System.out.println("3.购物系统管理>>真情回馈");

                         System.out.println("1-幸运大发送;2-幸运抽奖;3-生日问候");

                         System.out.println("请选择....");

                         break;

                 default:

                        System.out.println("4.注销");

                        break;

                }

   }else{

                   System.out.println("退出系统");

}

}

}

心得:实现3级菜单。If嵌套switch

6.为什么要处理系统异常?

如果用户错误地输入了一个不允许的字符,例如“s”,程序会怎样出现java.util.InputMismatchException

7.如何处理系统异常?

Scanner对象的hasNextInt()方法,可以判断用户从键盘输入的字符是否是合法的数字

举例:避免输入错误

import java.util.Scanner;

public class Case3 {

public static void main(String[] args) {

  //处理系统异常

         Scanner input=new Scanner(System.in);

        System.out.println("请输入数字");

        if(input.hasNextInt()){

        int num=input.nextInt();

}

else{

       System.out.println("对不起,请输入整数");

}

}

}

操作:实现商品换购

import java.util.Scanner;

public class as {

 public static void main(String[] args) {

 Scanner input=new Scanner(System.in);

         double cost=0;//消费金额

         double add=0;//换购金额

         String product=null;//换购产品

         String isOk=null;//是否参加换购活动

          int choice=0;//选项

          double pay=0;//支付金额

          System.out.println("请输入您的消费金额");

          cost=input.nextDouble();

          System.out.println("是否参加换购活动... y-参加;n-不参加");

          isOk=input.next();

          if(isOk.equals("y")) {

           System.out.println("1-消费满50元,加2元换购百事可乐一瓶");

           System.out.println("2-消费满100元,加3元换购500ml可乐一瓶");

           System.out.println("3-消费满100元,加10元换购5公斤面粉");

           System.out.println("4-消费满200元,加10元换购苏泊尔炒菜锅");

           System.out.println("5-消费满200元,加20元换购欧莱雅爽肤水一瓶");

           System.out.println("请选择.....");

           choice=input.nextInt();

           switch (choice) {

            case 1:

            if(cost>50) {

             product="百事可乐一瓶";

                   add=2;

               }else {

               System.out.println("您的消费金额不足50元");

               }

               break;

  case 2:

  if(cost>50) {

  product="500ml可乐一瓶";

   add=3;

               }else {

               System.out.println("您的消费金额不足10元");

               }

   break;

  case 3:

  if(cost>100) {

  product="5公斤面粉";

   add=10;

               }else {

               System.out.println("您的消费金额不足100元");

               }

   break;

  case 4:

  if(cost>200) {

  product="苏泊尔炒菜锅";

   add=10;

               }else {

               System.out.println("您的消费金额不足200元");

               }

   break;

  case 5:

  if(cost>200) {

  product="欧莱雅爽肤水";

   add=20;

               }else {

               System.out.println("您的消费金额不足200元");

               }

   break;    

default:

 System.out.println("选择错误....");

break;

}

         }else {

          System.out.println("不参加换购活动");

         }

         //计算消费总金额

         pay=cost+add;

         System.out.println("您本次一共消费:"+pay);

         System.out.println("您换购的产品为:"+product);

}

}

心得:提前将一些用到的变量写出来

 

posted on   流着眼泪奔跑  阅读(240)  评论(0编辑  收藏  举报

努力加载评论中...

导航

点击右上角即可分享
微信分享提示