Java——switch语句的运用
- switch语句
- switch_case
- 附:输入中的Scanner
switch语句
switch_case
在Java中有多种分支结构,单分支,双分支,多分支,嵌套分支等。在多分支结构中除了{if…elseif…else}语句外还有一种switch语句,不同于if在范围内判断,switch多用在需要进行 等值判断 的地方。
在switch语句中,值得注意的是:(1)各个case中的值不可相同,(2)default是可选项。
- 针对元音辅音,给出不同的输出答案
public class Eng{ public static void main(String[] args){ int
random = (int)(Math.random()*26); //采用随机数获取26个字母位数 char ch =
(char)('a'+random); //由于char是ascII编码,所以可以当成int来处理 //以a为首位字母
switch(ch){ case 'a': System.out.println("元音"+ch); case
'u': System.out.println("元音"+ch); case 'e':
System.out.println("元音"+ch); case 'i':
System.out.println("元音"+ch); case 'o':
System.out.println("元音"+ch);
default: System.out.println("辅音"+ch);
} } } ```
运行结果:
可以注意到,在辅音的时候,输出正确,而在元音的时候则输出有问题
这是因为switch语句是从上往下依次执行的,在执行完case之后又会执行default语句。为了解决这种问题的出现,我们引入break语句,用其来跳出switch语句,结束向下执行的过程。改动如下:
public class Eng{ public static void main(String[] args){ int
random = (int)(Math.random()*26); //采用随机数获取26个字母位数 char ch =
(char)('a'+random); //由于char是ascII编码,所以可以当成int来处理 //以a为首位字母
switch(ch){ case 'a': System.out.println("元音"+ch); break;
case 'u': System.out.println("元音"+ch); break; case 'e':
System.out.println("元音"+ch); break; case 'i':
System.out.println("元音"+ch); break; case 'o':
System.out.println("元音"+ch); break;
default: System.out.println("辅音"+ch);
} }
} ```
运行结果:
可以看到这样运行的话就没有问题了
但是这样输入的话,代码就显得非常冗余,在元音的时候case后的代码都是一样的,为了让代码更加精简,我们可以将其简化,让它先顺序执行case后,再进行输出语句操作。具体代码如下:
public class Eng{ public static void main(String[] args){ int
random = (int)(Math.random()*26); //采用随机数获取26个字母位数 char ch =
(char)('a'+random); //由于char是ascII编码,所以可以当成int来处理 //以a为首位字母
switch(ch){ case 'a': case 'u': case 'e': case 'i':
case 'o': System.out.println("元音"+ch); break;
default: System.out.println("辅音"+ch);
} } } ```
运行结果:
可以看到现在的运行结果也没有任何问题。
这样就从根本上解释了,为什么相关的执行语句不放在第一个case后,而是放在最后一个同类型的之后。在有多个不同执行语句的时候,分类放在各类最后一个case之后。具体代码如下:
public class Eng{ public static void main(String[] args){ int
random = (int)(Math.random()*26); //采用随机数获取26个字母位数 char ch =
(char)('a'+random); //由于char是ascII编码,所以可以当成int来处理 //以a为首位字母
switch(ch){ case 'a': case 'u': case 'e': case 'i':
case 'o': System.out.println("元音"+ch); break;
case 'y': case 'w': System.out.println("半元音"+ch); break;
default: System.out.println("辅音"+ch);
} } } ```
附:输入中的Scanner
Scanner: java中需要导入相应的包来实现输入操作,不像输出那样可以直接用System.out.println();
具体使用如下:
import java.util.Scanner;
public class Demo{
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据");
String str = sc.nextLine();
//读取下一整行的输入数据,相关的读取操作在api手册里可以查看
//同时,对于nextline读取回的都是字符串类型,需要进行类型转换,如果是nextdouble这种的话就不需要
System.out.println(str);
}
}