if语句用布尔表达式和布尔值作为条件判断的条件,选择条件适用于带有逻辑和关系的计算。
if语句
语法结构:
if(条件表达式){
语句块;
}
- 条件表达式 : 可以是任意的逻辑表达式,但最后返回的是一个布尔值,也可以是一个布尔值或者赋有布尔值的变量,当条件为真时,就执行下面的语句块,条件为假时,不执行里面的语句块。
- 语句块:语句块是在条件表达式为真时才会被执行,可以执行多条语句,如果只执行一条,则可以省略if语句的大括号,但从编程规范来看,不要省略大括号,造成代码的可读性变差。
例1
期末考试小明考了67分,满分100,0-59算不及格,60-89算良好,90-100算优秀,编写Java程序,输出小明成绩的排行。
public class dome2{
public static void main(String[] args) {
int a=90; //小明的成绩
if(a>=0&&a<=59) {
System.out.println("不及格");
}
if(a>=60&&a<90) {
System.out.println("良好");
}
if(a>=90&&a<=100)
System.out.println("优秀");
}
}
if-else语句
if语句只能在满足条件的情况下执行语句块,不满足时直接绕过不执行,if-else语句在条件不满足的情况下不会执行if语句里面的语句块,就会执行else里面的语句块,
语法结构:
if(条件表达式){
语句块1;
}else{
语句块2;
}
注释:当条件表达式为真时就会执行语句块1,语句块2就不执行,当条件为假 时, 语句块1就不执行,则会执行语句块2.
例2
判断2021年是不是闰年,判断方法:能被4整除但不能被100整除,或者被400整除,编写Java代码。
public class dome2{
public static void main(String[] args) {
int year=2021;
if((year%4==0&&year%100!=0)||(year%400==0)) {
System.out.println(year+"是闰年");
}else {
System.out.println(year+"不是闰年");
}
}
}
if-else if语句
if-else if可以提供多个分支,往往在一些比较复杂的关系逻辑中,一两个分支是没用的,if-else if 相当与if-else的嵌套。
语法结构:
if(表达式1){
语句块;
}else if(表达式2){
语句块;
}else if(表达式n){
语句块n;
}else{
语句块n+1;
}
注释:if-else if语句要依次判断表达式的值,只有当某个条件为真时,就执行这个分支语句,当前面所有的分支语句的值都为false时,就执行else里的语句n+1;
例3
比较num1和num2的大小,编写Java程序。
public class dome2{
public static void main(String[] args) {
int num1=20,num2=30;
if(num1>num2) {
System.out.println("num1>num2");
}else if(num1<num2) {
System.out.println("num2>num1");
}else {
System.out.println("num1==num2");
}
}
}
选择语句的嵌套
上面的这些分支选择语句都可以实现嵌套使用,在一些很繁琐,很长的逻辑表达中,常常可以把一个大的步骤分化成几个小的去做。
语法结构:
if(表达式){
if(表达式){
语句块;
}else{
语句块;
}
}else{
if(表达式){
语句块;
}else if(表达式){
语句块;
}else{
语句块;
}
}
例4
给出一个数字,看它是大于50还是小于50?,再在大于50中是大于等于80还是小于80?.编写Java程序。
public class dome2{
public static void main(String[] args) {
int a=90; //定义初始值
if(a>50) {
if(a<80) {
System.out.println(a+"小于80");
}else {
System.out.println(a+"大于等于80");
}
}else {
System.out.println(a+"小于50");
}
}
}