选择结构:switch语句

it2022-05-05  161

4. switch语句

switch格式:

switch( 表达式的值){ case 值1: 语句体1; break; case 值2: 语句体2; break; ...... default: 语句体n+1; break; }

格式解释:

switch表示这是switch语句,表达式取值byte short int char String 枚举case 后面跟的是要和表达式的值进行比较的值,可以为整数,但绝不可以是实数,如:case 1.2 是不合法的语句体可以是一条语句或多条语句break 表示中断,结束的意义,可以结束switch语句default语句表示所有的情况都不匹配的时候,就执行该块的内容,和if语句的else相似

执行流程:

首先计算表达式的值其次,和case依次做比较,一旦有对象的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。最后,如果所有的case都和表达式的值不匹配,就会执行defalut语句体部分,然后switch执行完毕。

注意事项:

case后面只能是常量,不能是变量,而且多个case后面不能出现相同的值default 可以省略, 但不建议break 可以省略,但程序依旧会继续判断执行,不会结束default的位置不一定在最后switch语句结束的条件,遇到break或者执行到末尾

示例代码:

class Demo{ public static void main(String[] args){ int week = 6; switch(week){ //指定switch语句的表达式为变量week case 1: //定义case语句中的常量为1 System.out.println("周一"); break; case 3: //定义case语句中的常量为3 System.out.println("周三"); break; case 6: //定义case语句中的常量为6 System.out.println("周六"); break; case 0: //定义case语句中的常量为0 System.out.println("周日"); break; default://default语句 System.out.println("I don't know"); } } } //输出 case 6:中的语句

选择结构switch和if语句的各自使用场景

  在做判断的时候,我们有两种选择,if语句和switch语句。

if语句的使用场景:

针对结果是boolean类型的判断针对单一值进行判断,也可以对区间值进行判断

switch语句的使用场景:

针对单一值进行判断

习题

package com.openlab.day03; import java.util.Scanner; public class Home08 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int year = s.nextInt(); int month = s.nextInt(); int day = s.nextInt(); if(month==1) { month=13; year-=1; }else if(month==2){ month=14; year-=1; } int k = year0 , j = year/100; int h =(day+ (26*(month+1))/10 +k+k/4+j/4+5*j)%7; //根据h的值选择 switch (h) { case 2: System.out.println("Day of the week is Monday"); break; case 3: System.out.println("Day of the week is Tuesday"); break; case 4: System.out.println("Day of the week is Wednesday"); break; case 5: System.out.println("Day of the week is Thursday"); break; case 6: System.out.println("Day of the week is Friday"); break; case 0: System.out.println("Day of the week is Saturday"); break; case 1: System.out.println("Day of the week is sunday"); break; } } }

最新回复(0)