流程图
注意一点:如果没有break,下一条语句直接执行。
Scanner myScanner = new Scanner(System.in);
char c = myScanner.next().charAt(0);//输入一个字符操作
注意细节
1. switch括号里表达式的数据类型,应和case后的常量类型一致,或者是可以相互转换的类型,比如int和char。
char c = 'a';
switch(c) {
case 11://这样不会报错
2. switch(表达式) 中表达式必须是:byte,short,int,char,enum,String(不能是浮点型)。
double c = 1.1;
switch(c) { //会报错
case 1.1: //这样也会报错
3. case子句中的值必须是常量,而不能是变量。
char c = 'a';
int b = 11;
switch(c) {
case b: //报错,不能是变量
4. default语句是可选的,当没有匹配的case时,执行default。
5. break语句用来执行完一个case分支后跳出switch语句块,如果没有写break,程序会顺序执行下一条case。
6. 如果判断的具体数值不多,而且都符合byte,short,int,char,enum,String这6种类型,建议使用switch语句。 对区间进行判断,或者结果为boolean类型,则使用if。
两个编程思想
1. 化繁为简:将复杂的要求,拆解成简单的需求,逐步完成。
2. 先死后活:先考虑固定的值,然后转变成可以灵活变化的值。