java流程结构(switch-case语句)
身为分支结构中的一员,就意味着他有很多分支,case后跟的就是各种情况(一种情况用一个常量表示),而switch后跟的是一个可与case后的常量进行匹配的常量,如果匹配成功,则进入相应的case语句中去,调用并执行该语句(若无break,则计算机会继续执行接下来的其他case后的语句),直到default语句。
文字固然难以说明,因此,以例说话:
例子一(错例!!!)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int number1=scan.nextInt();
switch (number1){
case(1):
number1+=10; //无break,会执行下面的所有case
case(2):
number1-=10;
case(3):
number1=0;
}
System.out.println(number1);
}
}
当输入1时,结果为0.看这个错例子,我们必须记住,break的重要性。改后如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int number1=scan.nextInt();
switch (number1){
case(1):
number1+=10;
break;
case(2):
number1-=10;
break;
case(3):
number1=0;
}
System.out.println(number1);
}
}
最后一句可以不用break,default也不是必要的,可以不加,default表示的是除了上述的case,剩下的所有情况按一个情况处理。下面就是加了default的形式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int number1=scan.nextInt();
switch (number1){
case(1):
number1+=10;
break;
case(2):
number1-=10;
break;
default:
number1=1;
}
System.out.println(number1);
}
}
switch-case的使用也没啥,就这些,有些需要必须注意的点就是:
1.break语句的重要性,不加就尴尬了。
2.switch语句只能用于byte型.int型.short型.char型.枚举类型和String型
3.case后只能声明变量,不能声明范围
4.default可选则使用。
5.switch中情况可数 ! ! !
接下来我说的得在大家理解后或者多用几次后的基础上来讲的,这个语句和if-else有很相似的运行原理,因此我在这里根据我的理解给大家辨析一下:
1.可用switch语句的都可以转化成if-else语句,反之,则不成立(因为case后不可以加范围)
2.可以同时使用这两个语句时,优先选择switch。别问,问就是效率高,计算机爱算这样式儿的。
3.还记得三元运算符吗?这三者先后选择顺序(在可以用的前提下!!!)优先三元运算符,其次switch语句,最后使用if-else。如果只用if-else,也可(因人而异)。
最后,我想说下,我这节写的程序可能有点长,但是真的没啥需要思考的东西,仔细看就绝对可以看懂,耐心点,兄弟们,你们可以的。