if语句: 



第一种格式 

if(条件表达式) 

{ 

执行语句; 

} 

如果条件表达式结果为true,则运行执行语句,如果为false,则不运行。 

例如: 

*/ 

int a=4; 

if (a>3)//条件表达式的结果为true,所以会运行执行语句。 

{ 

System.out.println("好久不见!");//这句是会被打印出来的。 

//执行语句的大括号可以不写,即便不写,它也会默认执行离它最近的执行语句,剩下的不再执行。 

} 

/* 第二种格式 

if (条件表达式) 

{ 

执行语句; 

} 

else   else中文意为否则。 

{ 

执行语句; 

} 

如果条件表达式为true,则运行第一条执行语句,如果结果为false,则运行else下面那条执行语句。 

  

*/ 

int b=4; 

if (b<4)//表达式结果为false,故第一条执行语句不再执行。 

{ 

System.out.println("hello world"); 

} 

else 
 //执行这一句。 

{ 

System.out.println("hello JAVA"); 
  

} 

int c=5,d; 

if (c>5) 

{ 

d=900; 

} 

else 

{ 

d=800; 
  

} 

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

//以上这种格式也是可以的,尽管d没有初始化值,但是if语句必须执行一条,即d的值是可以赋予的。 

//同时也可运用三元运算符写出以上的这种语句。 

d=c>5?900:800;//其实这个表达式也可看作上个表达式的简写。但是简写有局限性。 

//只有在if else语句有具体的结果时才能简化写成三元运算符,否则不能简写。 

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



/* 

if语句的第三种格式 

if (条件表达式) 

{ 

执行语句; 

} 

else if(条件表达式) 

{ 

执行语句; 

} 



....... 



else 

{ 

执行语句; 
  

} 

如果第一个条件表达式结果为true,则直接运行第一条执行语句,哪怕else if语句也满足条件也不会执行。 

因为第一条满足时代表整个if语句就已经运行结束了。 

*/ 

int e=8; 

if (e<2)//如果这里结果为true的话,则执行下面第一句执行语句,整个if语句结束。 

//但是这里为false,则忽略这句,继续向下运行。 

{ 

System.out.println("你好。"); 

} 

else if (e>9)//这里还是为false,继续忽略,向下运行。 

{ 

System.out.println("你好吗?"); 

} 

else if (e>10)//还是为false,忽略,继续向下。 

{ 

System.out.println("你好,世界。"); 

} 

else//上面全部为false,就只运行这句。 

{ 

System.out.println("你好,空间。"); 

} 

//一个特别的举例,搞懂if语句。 

int f=8; 

if (f<9) 

{ 

System.out.println("hello"); 

}//这里其实是单独的一条if语句,条件表达式结果为true,所以会被执行。 

if (f>3) 

{ 

System.out.println("hello。"); 

}//这是第二句,结果为true,同样会被执行。 

if (f>10) 

{ 

System.out.println("hello,JAVA"); 

} 

else 

{ 

System.out.println("hello,成都"); 

}//这里是第三句,结果为false,执行第二句。 

/* 

问题:上面总共是几条if语句?哪些语句会被执行? 

上面其实是三条语句,独立来看的话,就很容易明白哪些会被执行。 







注意:if语句是可以嵌套的。例如: 

*/ 

int g=3,h=5; 

if (g==2)//这里判断g是否等于2,结果是false,所以这里不执行。 

{ 

if (h==2)//这里就是if语句的嵌套,但是上面的结果为false,故这里不执行。 

{ 

System.out.println("hello world!"); 

} 

else 

{ 

System.out.println("hello yestoday!"); 

} 

} 

else//执行这里的语句。 

{ 

if (h==2)//进入嵌套的if语句,进行判断。结果为false,还是不执行。 

{ 

System.out.println("hello powerPC"); 

} 
  

else //执行这里,所以最后只执行这里的语句。  

{ 

System.out.println("hello Editplus"); 

} 

} 

/*有一点要记住,三种if语句格式 if else等关键词后面是没有分号;的。 

一对大括号里的代码叫做局部代码块,它可以定义变量的生命周期。后期不用的变量我们应尽早 

释放,以节约内存空间,起到优化的作用。 



if语句练习: 

根据用户给出的数据,判断对应的星期。 

判断题会用到判断结构,所以这题我们用if语句来运行。 

写if语句的第一个格式虽然也能完成,但是这样的话每段代码都会执行,浪费内存消耗。 

同时他是个多判断结构,那么用第三种语句格式是最合理的。*/ 

int i=8;//定义i这个变量,这个数值是使用者输入的,所以具体的值不确定。 

if (i==1) 

{ 

System.out.println("你输入的日期是星期一。"); 

} 

else if (i==2) 

{ 

System.out.println("你输入的日期是星期二。"); 

} 

else if (i==3) 

{ 

System.out.println("你输入的日期是星期三。"); 

} 

else if (i==4) 

{ 

System.out.println("你输入的日期是星期四。"); 

} 

else if (i==5) 

{ 

System.out.println("你输入的日期是星期五。"); 

} 

else if (i==6) 

{ 

System.out.println("你输入的日期是星期六。"); 

} 

else if (i==7)//在星期以内的数字我们都一一对应,一旦结果为true,就结束语句,不会消耗内存。 

{ 

System.out.println("你输入的日期是星期天。"); 

} 

else //如果使用者错误输入其他数据,我们没有对应,结果自然会为false,就只能执行这一句。 

{ 

System.out.println("对不起,输入错误。"); 
  

} 

/*if语句练习二 

季节练习,我们知道一年12个月,有4个季节。根据实际生活我们设定: 

春季:3月,4月,5月。 

夏季:6月,7月,8月。 

秋季:9月,10月,11月。 

冬季:12月,1月,2月。 

使用者输入相应的月份,我们输出对应的季节。 

首先,我们还是定义变量,假设为使用者输入的不确定的数值。*/ 

int j=8; 

if (j>=3&j<=5) 

{ 

System.out.println(j+"月是春季。"); 

} 

else if (j>=6&j<=8) 

{ 

System.out.println(j+"月是夏季。"); 

} 

else if (j>=9&j<=11) 

{ 

System.out.println(j+"月是秋季。"); 

} 

else if (j<=12&j>=2) 

{ 

System.out.println(j+"月是冬季。"); 

} 

else  

{ 

System.out.println("对不起,没有这个月份。"); 
  

} 

/*以上这种用大小于等于限定范围,&与符号连接的方式是可行的,但是要注意 

java里默认是从上到下的执行顺序,如果我们把执行冬季的那条语句提到上面的话。 

运行就会错乱。 

于是我们改良成另外一种方法*/ 

int j=8; 

if (j<1||j>12)//这里必须用或符号连接,因为我们要排除1到12以外的数,没有哪个数能满足既小于1又大于12的。 

{ 

System.out.println("对不起,没有这个月份。"); 

}//这里我们先排除以外的数,再在里面做甄选。 

else if (j>=6&j<=8) 

{ 

System.out.println(j+"月是夏季。"); 

}//这里排除的是6到8. 

else if (j>=9&j<=11) 

{ 

System.out.println(j+"月是秋季。"); 

}//这里排除的是9到11. 

else if (j>=3&j<=5) 

{ 

System.out.println(j+"月是春季。"); 

}//这里排除的是3到5. 

else  

{ 

System.out.println(j+"月是冬季。"); 
  

}//剩下的自然就是12和1和2了。 

 

 

//还有一种方法 

int k=1; 

if (k==3||k==4||k==5) 

{ 

System.out.println(k+"月是春季。"); 

} 

else if (k==6||k==7||k==8) 

{ 

System.out.println(k+"月是夏季。"); 

} 

else if (k==9||k==10||k==11) 

{ 

System.out.println(k+"月是秋季。"); 

} 

else if (k==12||k==1||k==2) 

{ 

System.out.println(k+"月是冬季。"); 

} 

else  

{ 

System.out.println("对不起,没有这个月份。"); 
  

} 

//这种用双或的方式也是可行的,而且双或还有个好处就是前面结果为true时,后面直接短路。节省内存空间。