java基础:流程控制(选择结构switch语句)

(1)格式:

switch(表达式) {

case 1:

语句体1;

break;

case 2:

语句体2;

break;

...

default:

语句体n+1;

break;

}

   

格式解释说明:

switch:说明这是switch语句。

表达式:可以是byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是字符串

case:后面的值就是要和表达式进行比较的值

break:表示程序到这里中断,跳出switch语句

default:如果所有的情况都不匹配,就执行这里,相当于if语句中的else

switch语句的注意事项:

A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

B:default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

特殊情况:

case就可以把值固定。

A,B,C,D

C:break可以省略吗?

可以省略,但是结果可能不是我们想要的。

会出现一个现象:case穿透。

最终我们建议不要省略

D:default一定要在最后吗?

不是,可以在任意位置。但是建议在最后。

E:switch语句的结束条件

a:遇到break就结束了

b:执行到末尾就结束了

   

   

Demo:

键盘录入一个数据,根据这个数据,我们输出对应的星期?

键盘录入1,对应输出星期一

键盘录入2,对应输出星期二

...

键盘录入7,对应输出星期日

   

分析:

1:键盘录入,用Scanner实现

2:判断我们既可以使用if语句,也可以使用我们要讲解的switch语句

   

注意:

A:遇到左大括号缩进一个tab的位置。

B:关联不是很大的语句间空行

  

import java.util.Scanner;

   

class SwitchDemo {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

   

//控制键盘录入数据

System.out.println("请输入一个数据(1-7):");

int week = sc.nextInt(); //3

   

//switch判断语句

switch(week) {

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二");

break;

case 3:

System.out.println("星期三");

break;

case 4:

System.out.println("星期四");

break;

case 5:

System.out.println("星期五");

break;

case 6:

System.out.println("星期六");

break;

case 7:

System.out.println("星期日");

break;

default:

System.out.println("你输入的数据有误");

break;

}

}

}

Code:

模拟单项选择题。

   

分析:

A:出一个选择题,然后供你选择。

B:键盘录入选择的数据。

C:根据选择来给出你选择的结论。

  

   

import java.util.Scanner;

   

class SwitchTest2 {

public static void main(String[] args) {

//出一个选择题,然后供你选择。

//由于我们现在没有办法键盘录入得到一个'A','B'

//这样的东西,我就用6566这样的值替代

//将来我们获取到这样的值以后,强制转换为字符类型

System.out.println("下面的几个人你最爱谁?");

System.out.println("65 林青霞");

System.out.println("66 张曼玉");

System.out.println("67 刘德华");

System.out.println("68 王力宏");

   

//键盘录入选择的数据。

Scanner sc = new Scanner(System.in);

   

System.out.println("请输入你的选择:");

int choiceNumber = sc.nextInt();

   

//强制转换为字符类型

char choice = (char) choiceNumber;

   

switch(choice) {

case 'A':

System.out.println("恭喜你,选择正确");

break;

case 'B':

System.out.println("不好意思,你选择有误");

break;

case 'C':

System.out.println("不好意思,你选择有误");

break;

case 'D':

System.out.println("不好意思,你选择有误");

break;

default:

System.out.println("没有该选项");

break;

}

}

}

Code:

根据你键盘录入的字符串,判断是否有满足要求的,如果有就输出。

否则,提示有误。

String s = sc.nextLine();

   

import java.util.Scanner;

   

class SwitchTest3 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

   

//录入数据

System.out.println("请输入你要判断的字符串:");

String s = sc.nextLine();

   

switch(s) {

case "hello":

System.out.println("你输入的是hello");

break;

case "world":

System.out.println("你输入的是world");

break;

case "java":

System.out.println("你输入的是java");

break;

default:

System.out.println("没有找到你输入的数据");

//break;

}

}

}

Code:

switch语句实现键盘录入月份,输出对应的季节

   

分析:

A:键盘录入一个月份,用Scanner实现

B:switch语句实现即可

   

if语句和switch语句的区别?

if语句:

A:针对结果是boolean类型的判断

B:针对一个范围的判断

C:针对几个常量值的判断

   

switch语句:

针对几个常量值的判断

  

import java.util.Scanner;

   

class SwitchTest4 {

public static void main(String[] args) {

//创建键盘录入对象

Scanner sc = new Scanner(System.in);

   

//录入数据

System.out.println("请输入月份(1-12)");

int month = sc.nextInt();

   

/*

switch(month) {

case 1:

System.out.println("冬季");

break;

case 2:

System.out.println("冬季");

break;

case 3:

System.out.println("春季");

break;

case 4:

System.out.println("春季");

break;

case 5:

System.out.println("春季");

break;

case 6:

System.out.println("夏季");

break;

case 7:

System.out.println("夏季");

break;

case 8:

System.out.println("夏季");

break;

case 9:

System.out.println("秋季");

break;

case 10:

System.out.println("秋季");

break;

case 11:

System.out.println("秋季");

break;

case 12:

System.out.println("冬季");

break;

default:

System.out.println("你输入的月份有误");

}

*/

   

//这样写太麻烦了,我们使用一个我们不想使用的东西: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("你输入的月份有误");

}

}

}

 

posted @ 2017-06-02 06:55  殷瑜泰  阅读(186)  评论(0编辑  收藏  举报