JAVA基础(2):流程控制之分支语句

           控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。

一、if--else

        if--else是流程控制的最基本形式,其中else是可选的。

if(表达式){
    执行语句块
}

//或

if(表达式){
    执行语句块1
}else{
    执行语句块2
}

        说明:条件表达式可以是任何一种逻辑表达式,如果表达式值为true,则执行花括号的内容后,再执行后面的语句;如果表达的值为false,则直接执行后面的语句。如果,大括号只有一条语句,则可以省略大括号(建议不省略)。

        作为if-else的一个例子,下面这个方法可以告诉你,你猜他能不能得的奖品:

public static void main(String[] args){
		int score = 99;
		//方式1
		if(score>98){
			System.out.println("奖励Mp4");
		}
		//方式2:如果大括号里只有一行代码,则可省略大括号(建议不省略)
		if(score>98)
			System.out.println("奖励Mp4");
}

二、switch case  

        除了if else这样的分支语句之外,java里边还有一种分支语句叫switch case,我们有的时候也称为开关语句

switch(表达式){
    case 值1: 语句块1
    ...
    case 值n: 语句块n
    default: 语句块n+1
}

        说明:表达式的值只可以接受int、byte、char、short 型及其包装器类、枚举,JDK1.6以后String也可以,不接受其他类型的值,不允许有重复的case取值。switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止。

public static void main(String[] args) {
        int x = 2;
        switch (x) {
            case 1:
                System.out.println("Monday");
            case 2:
                System.out.println("Tuesday");
            case 3:
                System.out.println("Wednesday");
            default:
                System.out.println("Sorry,I don't know");
        }
    }

        说明:执行出来的结果如上图所示,也就是说switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止。

public static void main(String[] args){
		int x = 2;
		switch (x) {
			case 1:
				System.out.println("Monday");
			case 2:
				System.out.println("Tuesday");
                break;
			case 3:
				System.out.println("Wednesday");
			default:
				System.out.println("Sorry,I don't know");
		}
}

那么此时只会输出“Tuesday”。

        Java中的switch分支语句,看似很简单和其他语言中用法一样,但是就是在这小小的switch语句中却隐含着大陷阱。switch 语句之后可以包含一个default分支。从字面意义上看,这个分支是默认分支,似乎是无条件执行的分支,实际上不是。

        default分支的潜在条件是,表达式的值和前面分支的值都不相等。也就是说,在正常情况下,只有当switch语句的前面分支没有获得执行时default才会获得执行的机会,实例如下: 

public static void main(String[]args){ 
   char score  =  'D'; 
   switch(score){ 
    case 'A': 
     System.out.println("优秀"); 
     break; 
    case 'B': 
     System.out.println("良好"); 
     break; 
    case 'C': 
     System.out.println("中"); 
     break; 
    default: 
       System.out.println("差"); 
   } 
} 

        运行上面的程序会发现,default分支并没有获得执行的机会,只有score的值不是所有分支中各表达式的值时,才满足default分支的潜在条件。

比较switch和多重if选择结构

相同点:

        都是用来处理多分支条件的结构

不同点:

        switch只能处理等值条件判断的情况,而且条件必须是整型变量或字符型变量

        多重if没有switch的限制,特别适合某一变量处于某个连续区间时的情况

如果本文对您有很大的帮助,还请点赞关注一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值