if 和 switch的使用

if选择结构

  • if语句的格式1:
    -if(比较表达式或者是boolean类型的值){
    语句;
    }
    -如果,if中的判别式结果为true,则运行{}中的语句,否则不运行。
  • if语句的格式2:
    -if(比较表达式或者是boolean类型的值){
    语句1;
    }else{
    语句2;
    }
    -如果,if中的结果为true,则运行语句1,不运行语句2,如果if中的语句结果为false,则运行语句2.
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);
该程序的结果为 x=7,y=1。因为x==1为true,所以执行x=7,又因为是||所以不执行++y==1。
  • if语句的格式3:
    -if(比较表达式或者是boolean类型的值){
    语句1;
    }else if(比较表达式2或者是boolean类型的值){
    语句2;
    }else if(比较表达式3或者是boolean类型的值){
    语句3;
    }else{
    语句4;
    }
    - 如果比较表达式或者boolean类型的值是true,则执行语句1,否则再后面的else if中寻找,如果比较表达式2或者boolean类型的值为true则执行语句2,以此类推,如果if 和 else if中都没有true,则运行最后一句else 中的语句4。
boolean b = true;
if(b=false) //把false赋给b,所以判断式中是false,后面的语句不执行
	System.out.println("a");
else if(b) //b为false,所以不执行
	System.out.println("b");
else if(!b) //!b为true,所以执行
	System.out.println("c");
else
	System.out.println("d");

switch选择语句

  • switch的模式:
    -switch(表达式){
    case 值1:
    语句体1;
    break;
    case 值2:
    语句体2;
    break;
    case 值3:
    语句体3;
    break;
    default :
    语句体;
    break;

}
-计算表达式的值,然后将值与case 的值进行匹配,然后运行相应的语句体。
-注意:break的作用是避免出现穿透情况,即会一直执行下去,知道出现break或者整个switch结束。
default的作用是如果没有与case相匹配的值,则执行default中的语句。

int x = 2;
	int y = 3;
	switch(x){
		default:
			y++;
			break;
		case 3:
			y++;
		case 4:
			y++;
	}
	System.out.println("y="+y);
	解释:因为case中没有与x匹配的,所以执行defaul语句,即y++,所以为y=4.

int x = 2;
	int y = 3;
	switch(x){
		default:
			y++;
		case 3:
			y++;
		case 4:
			y++;
	}
	System.out.println("y="+y);
	解释:因为没有与x匹配的,所以执行default中的语句,即y++,但是后没有break,所以继续往下执行y++和y++,所以最后的结果为y=6。
- 合理利用case穿透的案例:
	        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month=sc.nextInt();
        switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("31天");
                break;
            case 2:
                System.out.println("28天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("30天");
                break;
                default:
                    System.out.println("你输入的月份有误");
                    break;
        }
        因为1、3、5、7、8、10、12月均为31天,因此可利用case没有break时的穿透特点,减少代码量,其他的道理一样。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值