Java if else条件语句

分享到:

if else 语句是Java开发使用频率非常高的条件判断语句,通常用来判断指定的条件是否成立,从而执行不同的逻辑代码。按字面意思翻译过来就是“如果...那么...否则...” if else语句的基本结构如下所示。

java if else条件语句

上图是一个基本的java if else语句结构体,如果逻辑表达式成立(true)执行if{...}中的代码,如果不成立(false)则执行else{...}中的代码。看一个实例,代码如下所示:

int a=1;
int b=2;
if(a<b){
	System.out.print("a<b");
}else{
	System.out.print("a>b");
}

//输出结果 a<b

分析一下这段代码: 首先定义两个整数变量a=1, b=2 然后通过if语句判断a小于b吗? 事实是a确实小于b 因此if后面的条件为true,所以会执行if{}语句块中的代码,结果输出 a<b ,而else{}中的代码自动忽略不会被执行。
如果我们把if(a<b)改成if(a>b) 这时if后面的条件就成了false,因为a不可能大于b,所以这时if{}语句块中的代码会被跳过,之后直接执行else{}语句块中的代码了。
这就是if else语句的作用,根据条件表达式返回的状态做出相应的选择,从而执行相应的逻辑代码。

Java中的if else语句还可以拆开使用,只保留if(条件表达式){...}的部分,去掉else{...}的部分。举例说明,代码如下所示:

int a=1;
int b=2;
int c=10;
if(a<b){
	c=a;
}

System.out.println("c=" + c);

//输出结果 c=1
	

如果在一段代码中有多个条件需要判断可以这样写,代码如下:

int a=5;
		
if(a>1){
  System.out.println("a>1 ");
}
if(a>2){
  System.out.println("a>2 ");
}
if(a>3){
  System.out.println("a>3 ");;
}


//输出结果 a>1 a>2 a>3

else if()结构

通过多个if语句判断多种情况是允许的,但有一个问题那就是每一个if()语句都会被执行,一但有多个条件符要求而你又希望只得到唯一结果这种情况就有冲突了,本例就是这种情况一次得到3个结果。因为编译器并不知道你的意图,会把所有复合条件的代码统统执行一编。
为了解决这个问题我们可以使用if(){} else if(){} .....else{}的复合结构,举例说明,代码如下所示:

int a=5;
		
if(a>1){
  System.out.println("a>1 ");
}
else if(a>2){
  System.out.println("a>2 ");
}
else if(a>3){
  System.out.println("a>3 ");
}
else if(a>4){
  System.out.println("a>4 ");
}
else{
  System.out.println("以上条件都不复合要求");
}


//输出结果 a>1

首先看一下代码结构,仍然是从if()开始,由else{}结尾,唯独中间的部分和之前的else不一样,在else后面又加了一个if语句(注意:else后面有空格)。形成else if(条件){...}的语句格式。这样就可以把多个判断条件放在中间的else if()中进行判断
接下来我们观察输出结果只有一个a>1 ,虽然其它条件都复合要求但没有输出相应的结果,可见其余的几个条件判断被自动忽略了。我们要的就是这种效果。
Java中还提供了另一种语句结构来完成类似的功能,具体内容请参考Switch语句
注意事项:
(1)if语句中一但使用了else if()这种形式,只会执行第一个符合条件的代码块,剩下的部分自动忽略不被执行。
(2)如果前面的if()语句和所有的else if()语句都没执行,则执行最后一个else{}中的代码。前前条件是最后有else{}这个代码块
(注:最后的else{}代码块不是必须的,可以不加,加上的目的通常是用来执行默认逻辑的)

if 语句的嵌套

通过上面几个例子已经介绍了java中if语句的各种形式,但是有一种情况我们没有接触 就是if语句的嵌套,所谓if嵌套是在一个if语句中又包含另一个if语句甚至更多。先看一个例子,代码如下:

int a=1;
int b=2;
int c=3;

if(a==5){
  if(b==2){
    System.out.print("执行了第1个嵌套");
  }
}else{
  if(c==3){
    System.out.print("执行了第2个嵌套");
  }
}

//输出结果 执行了第2个嵌套

执行循序是这样的,首先判断if(a==5) 因为变量a的值是1 所以a==5不成立的返回false, 第一个if{}代码块就被跳过了,里面写的代码都无效根本不执行。直接跳到else{}里,然后再次判断else{}内部的if(c==3) 因为变量 c 的值确实是3,所以这个地方的if条件为true 接着就会执行里面的代码。输出结果必须是:"执行了第2个嵌套"

上面的例子我们只嵌套了两层,其实可以嵌套N层,原理都是一样的,从一个分支下去直到条件不符合时跳出本分支逻辑,进入同级的另一分支,直到代码执行完毕。

昵    称:
验证码:

相关文档: