java语言基础switch分支结构测试

94 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

分支结构知识点:基于条件执行的语句

一) if结构: 1条路
1)语法:
if(boolean){
语句块---------基于条件执行的
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块
若为false,则if结束
二)if…else结构: 2条路
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块1(整个结束)
若为false,则执行语句块2(整个结束)
3)说明: 语句块1和语句块2,必走其中之一
三)if…else if结构: 多条路
1)语法:
if(boolean-1){
语句块1
}else if(boolean-2){
语句块2
}else if(boolean-3){
语句块3
}else{
语句块4
}
2)执行过程:
判断boolean-1,若为true则执行语句块1(结束),若为false则
再判断boolean-2,若为true则执行语句块2(结束),若为false则
再判断boolean-3,若为true则执行语句块3(结束),若为false则执行语句块4(结束)
3)说明:
语句块1/2/3/4,只执行其中之一

四)switch…case结构: 多条路
int num = 4;
switch(num) { //byte,short,int,char,String(JDK1.7开始支持)
case 1: //if(num==1)
System.out.println(111);
break;
case 2: //以此为入口
System.out.println(222);
break; //跳出switch
case 3:
System.out.println(333);
break;
default: //所有case都未匹配时才执行
System.out.println(666);
优点:效率高、结构清晰
缺点:整数、相等
break:跳出switch
default:(相当于else)

`` 

import java.util.Scanner;

public class CommandBySwitch {

    public static void main(String[] args) {         Scanner scan=new Scanner(System.in);         System.out.println("您可查询以下业务1话费2流量3余额");         int i;double o;                   for( i=6;i>1;i--){         int s=scan.nextInt();         switch(s){         case 1:             System.out.println("您的话费为(按1充值)(按2查看优惠)");             int k=scan.nextInt();             if(k==1){                 System.out.println("您要充值的金额为(按返回)");                  double p=scan.nextDouble();                  //                  if(p<50){                      System.out.println("优惠后您需要缴费"+p);                                        }else if(p<100){                      o=p0.9;                      // o=p0.9    ;                                                                        System.out.println("优惠后您需要缴费"+o);//o                                                       System.out.println("已为您优惠"+(String.format("%.2f",(p-o))+"元"));                           }else {                     p=p0.8;                      System.out.println("优惠后您需要缴费"+p);                      System.out.println("已为您优惠"+(p/10*9)+"元");                  }                              }else if(k==2){                 System.out.println("满50打9折扣,满100打八折");             }else {                 System.out.println();             }             break;         case 2:             System.out.println("您的流量为");             break;         case 3:             System.out.println("您的余额为");             break;             default:                 System.out.println("按键错误");         }    if(i==2){             System.out.println("");         }else{                  System.out.println("您还可以继续查询的次数为"+(i-2)+"次");                           System.out.println("您要查询的业务为");         }         }         System.out.println("感谢来电");                  }

}``

注:

switch 是否能作用在 byte 上,是否能作用在 long 上,是否 能作用在 String

在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从 Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7 开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的