·1、switch-case
switch中的比较是用的equals,而不是“==”,switch中只能使用byte、short、int、char、string、枚举类型。(不能使用long、flaot、double)
各个case标签不必连续、也不按特定顺序排列,default标签可位于switch-case结构中的任意位置,且default的判断之后没有break一样会执行后面的case语句,
default标签不是必须写的,每两个case语句之间语句数不限,
Scanner sc4=new Scanner(System.in);
System.out.println("请输入一个值");
String str=sc4.next();
switch (str) {
case "abc":
System.out.println("abc");
break;
default:
System.out.println("输入错误!!");
break;
}
输出结果:请输入一个值
abc
abc
2、Java中的break,continue关于标签的用法
Java的控制循环结构中是没有关键字goto的,这种做法有它的好处,它提高了程序流程控制的可读性,但是也有不好的地方,它降低了程序流程控制的灵活性,
所以说,“上帝是公平的”。所以,Java为了弥补这方面的不足,Java提供了break和continue的标签用法。Java中的标签就是一个紧跟着“:”的标识符。与其他语
言不通,Java语言的标签必须放在循环前面才有作用。
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
if(j==4){
break outer;
}
System.out.println("i="+i+" j="+j);
}
}
System.out.println("Hello World!");
运行结果:
i=0 j=0
i=0 j=1
i=0 j=2
i=0 j=3
Hello World!
从执行结果我们看到,当j等于4的时候,“break outer” 被执行了,这是break直接结束了outer对应的外部循环,而不是break所在的本层循环。
outer:
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 6; j++) {
if(j==4){
continue outer;
}
System.out.println("i="+i+" j="+j);
}
}
System.out.println("Hello World!");
运行结果:
i=0 j=0
i=0 j=1
i=0 j=2
i=0 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
i=3 j=0
i=3 j=1
i=3 j=2
i=3 j=3
i=4 j=0
i=4 j=1
i=4 j=2
i=4 j=3
Hello World!
从结果我们可以看到,j等于4的时候永远没有被执行。因为,当j等于4时,“continue outer”就结束了外层循环的当次循环,直接进入下一次
循环了,内层循环就不会再被执行了。