J2SE_条件语句

一、if ... else if ...else

判断多个条件的时候使用,示例代码如下:

public class TestDemo1 {

	public static void main(String[] args) {

		int a = 10;
		if (a == 1)
		{
			System.out.println("xxxxx");
		}
		else if (a == 5)
		{
			System.out.println("yyyyy");
		}
		else if (a == 10)
		{
			System.out.println("zzzzz");
		}
		else
		{
			System.out.println("doesn't exist!");
		}
	}
}
输出结果:zzzzz

这是正常的使用情况。但是,如果你的条件满足其中多个分支并且你希望都执行时,这样做逻辑上是错误的。示例代码如下:

public class TestDemo {

	public static void main(String[] args) {
		
		int a = 6;
		if (a > 1)
		{
			System.out.println("xxxx");
		}
		else if (a > 2)
		{
			System.out.println("yyyy");
		}
	}

}

输出结果:xxxx

以上代码中,a > 1 并且 a > 2, 但是这里只会输出:xxxx, 不会执行yyyy的输出。因为if ...esle if 当前面有一个分支满足条件时,之后的分支即使有满足条件的也不会执行。

此时应该使用两个独立的if语句即可。代码示例如下:

public class TestDemo2 {

	public static void main(String[] args) {
		
		int a = 6;
		if (a > 1)
		{
			System.out.println("xxxx");
		}
		
		if (a > 2)
		{
			System.out.println("yyyy");
		}
	}

}
输出结果:xxxx

                    yyyy
以上的问题很小,但是不可小视,否则会在开发中带来很大麻烦。


二、switch ... case ...

一种很简便的选择语句,switch(a),其中a只支持数字,字符,枚举(1.5之后)

代码示例:

public class TestDemo3 {

	public static void main(String[] args) {
		int a = 5;
		switch (a) 
		{
			case 1 : 
				System.out.println("xxxx");
			case 5 : 
				System.out.println("yyyy");
			case 10 :
				System.out.println("zzzz");
			default : 
				System.out.println("doesn't exist!");
		}
	}
}
输出结果:yyyy
                    zzzz
                   doesn't exist!

以上结果可以看出,匹配到符合条件的case分支时,开始执行,一直到switch的结束。如果没有符合条件的case分支语句时, 就执行default语句(没有default就什么都不执行)。但是,我们只希望执行yyyy,解决办法是在每一个case语句后面加上break语句,让程序跳出switch语句。正确使用的代码示例如下:

public class TestDemo3 {

	public static void main(String[] args) {
		int a = 5;
		switch (a) 
		{
			case 1 : 
				System.out.println("xxxx");
				break;
			case 5 : 
				System.out.println("yyyy");
				break;
			case 10 :
				System.out.println("zzzz");
				break;
			default : 
				System.out.println("doesn't exist!");
		}
	}
}

结合枚举使用switch, 示例代码:

enum Color { //不可以用public来修饰,因为Color本质是一个类,而在一个Java文件中,至多有一个public类
	RED, BLUE, BLACK;
}

public class TestDemo4 {
	public static void main(String[] args) {
		
		Color c = Color.BLUE;
		switch (c){       //等价于Color.BLUE
			case RED :    //Color.RED 会报错 
				System.out.println("red");
				break;
			case BLUE : 
				System.out.println("blue");
				break;
			case BLACK : 
				System.out.println("black");
				break;
			default : 
				System.out.println("error");
		}
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值