什么是switch选择结构?
switch(表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
......
default:
代码块n;
break;
}
这里的switch、case、default、break都是java中的关键字
其中switch表示开关,这个开关就是switch后面小括号里面的值,小括号里要放一个整型变量或字符型变量。
case表示情况情形,case后面必须是一个整型或者字符型的常量表达式,通常是固定的字符、数字。例如8、'a'。case快可以有多个,顺序也是可以改变的,但是case后面的常量值都能相等。
default表示默认,后面要紧跟冒号,和case块的位置可以改变。一般放在句尾,或者省略。
break表示停止,跳出当前结构~
如果switch小括号中计算的值和哪个case后的常量相等,就执行这个case块的代码,遇到break时就跳出switch选择结构,执行switch选择结构之后的代码。
如果没有任何一个case后的常量跟小括号中的值相等,则执行switch末尾部分的default块中的代码。
现在我们还是解决上节课的那个问题,通过代码来详细了解。
import java.util.Scanner;
public class Main {
public static void main(String[]args){
System.out.println("请输入您的名次:(数字1.2.3.4等)");
Scanner input=new Scanner(System.in);
int mingCi=input.nextInt();
switch(mingCi){
case 1:
System.out.println("名次为第一名");
break;
case 2:
System.out.println("名次为第二名");
break;
case 3:
System.out.println("名次为第三名");
break;
default:
System.out.println("没有任何奖励");
}
}
}
可见,括号中的mingCi的值为输入值,与相应的case匹配后执行后面的代码~打印输出println,然后执行语句”break;“,用来跳出switch选择结构
switch让程序看起来更清新一些,他们完成的功能其实是完全一样的,但是,并非所有的多重if选择结构都可以使用switch选择结构代替。
通过观察,我们发现switch选择结构的条件只能是等值的判断,而且只能是整形或字符型的等值判断。
也就是说,switch选择结构只能判断一个整形变量是否等于某个整数值的情况,或者一个字符型变量是否等于某个字符的情况,并且每个case后面的值都不相同,
但是多重if选择结构既可以判断是否相等,又可以判断条件是区界(如200<=a<300)的情况。
而break的作用是跳出循环,如果我们省略break,那么程序就会完整执行整个程序,执行所有的选择结构代码。
所以,我们编写switch选择结构的时候不能忘记在每个case后面加一个"break;"
case和default后面都有一个冒号,否则编译不通过。