一个 if 语句包含一个布尔表达式和一条或多条语句。
语法 if 语句的语法如下: if(布尔表达式) { // 代码块 } 如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。
if单分支经典案例:女朋友让男朋友去买2斤苹果,如果看到葡萄买一斤。
public class Test { public static void main(String args[]){ boolean isLookGrape = true; // 是否看到葡萄 if(isLookGrape){ System.out.println("买一斤葡萄"); } System.out.println("买两斤苹果"); } }if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。
语法 if…else 的用法如下:
if(布尔表达式){ //如果布尔表达式的值为true }else{ //如果布尔表达式的值为false }
if…else分支经典案例:女朋友让男朋友去买2斤苹果,如果看到葡萄买一斤。
public class Test { public static void main(String args[]){ boolean isLookGrape = true; // 是否看到葡萄 if(isLookGrape){ System.out.println("买一斤苹果"); }else{ System.out.println("买两斤苹果"); } } }使用 if,else if,else 语句的时候,需要注意: if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。 如果一个if或else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。 if…else 语法格式如下: if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else { //如果以上布尔表达式都不为true执行代码 }
if,else if,else 语句的流程结构
if,else if,else 案例:学校需要根据学生的成绩区分等级,90分及以上为A, 80分到90分之间为B,70分到80分之间为C,60分到70分之间为D,60分以下为E int score = 85; if(score >= 90 ){ System.out.println(“A”); }else if(score >= 80 && score < 90 ){ System.out.println(“B”); }else if(score >= 70 && score < 80 ){ System.out.println(“C”); }else if(score >= 60 && score < 70 ){ System.out.println(“D”); }else{ System.out.println(“E”); }
在一个 if 或者 else if 语句中使用 if 或者 else if 语句。 嵌套的 if…else 语法格式如下: if(布尔表达式 1){ //如果布尔表达式 1的值为true执行代码 if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else{ // 语句块 } }else if(布尔表达式){ // 语句块 }else{ // 语句块 }
嵌套if…else分支练习: 奥运会举重比赛,男女都可以参与, 1,如果为男生,体重在70公斤到80公斤之间,则参与70公斤男生组比赛,60公斤到70公斤之间,则参与60公斤男生组比赛,不在该范围的不能参与比赛。 2,如果为女生,体重在60公斤到70公斤之间,则参与60公斤女生组比赛,50公斤到60公斤之间,则参与50公斤女生组比赛,不在该范围的不能参与比赛。 3,性别不确定的,不能参与比赛。
/** * 定义一个人的类 */ public class Person { String name; // 姓名 String sex; // 性别 int weight; // 体重 /** * 构造方法 * * @param name 姓名 * @param sex 性别 * @param weight 体重 */ public Person(String name, String sex, int weight) { this.name = name; this.sex = sex; this.weight = weight; } } public class Lesson { // 嵌套if…else分支 public static void main(String[] args) { //奥运会举重比赛,男女都可以参与, //1,如果为男生,体重在70公斤到80公斤之间,则参与70公斤男生组比赛,60公斤 //到70公斤之间,则参与60公斤男生组比赛,不在该范围的不能参与比赛。 //2,如果为女生,体重在60公斤到70公斤之间,则参与60公斤女生组比赛,50公斤 //到60公斤之间,则参与50公斤女生组比赛,不在该范围的不能参与比赛。 //3,性别不确定的,不能参与比赛。 Person zs = new Person("张三", "男", 85); Lesson9.weightlifting(zs); Person ls = new Person("李四", "女", 65); Lesson9.weightlifting(ls); } /** * 判断一个人是否能参与举重比赛 * * @param person */ public static void weightlifting(Person person) { if (person.sex == "男") { if (person.weight >= 70 && person.weight < 80) { System.out.println(person.name + "参与70公斤男生组比赛"); } else if (person.weight >= 60 && person.weight < 70) { System.out.println(person.name + "参与60公斤男生组比赛"); } else { System.out.println(person.name + ",体重不在范围内,不能参与比赛"); } } else if (person.sex == "女") { if (person.weight >= 60 && person.weight < 70) { System.out.println(person.name + "参与60公斤女生组比赛"); } else if (person.weight >= 50 && person.weight < 60) { System.out.println(person.name + "参与50公斤女生组比赛"); } else { System.out.println(person.name + ",体重不在范围内,不能参与比赛"); } } else { System.out.println(person.name + ",性别不确定的,不能参与比赛"); } } }if分支中的代码块如果只有一条语句则{}可以缺省,如果有多条缺省{}则会导致代码逻辑异常。 案例:女朋友让男朋友下班回来如果经过水果店,就买一斤苹果和一斤葡萄
public class Lesson { // if分支{}缺省 // if分支中的代码块如果只有一条语句则{}可以缺省, // 如果有多条缺省{}则会导致代码逻 辑异常 public static void main(String[] args) { // 女朋友跟男朋友说下班回来如果经过水果店, // 就买一斤苹果和一斤葡萄 // 是否经过水果店 boolean isFruitStore = false; // 不缺省{} if (isFruitStore) { System.out.println("买一斤苹果"); System.out.println("买一斤葡萄"); } // 缺省{} // 缺省{}的时候,那么if的语句块只会默认包含if下面的第一句代码。 if (isFruitStore) System.out.println("缺省:买一斤苹果"); System.out.println("缺省:买一斤葡萄"); } }学校要评三好学生,评定的标准是语文和数学两科成绩, 1,两科成绩都必须大于70分,并且其中任意一科的成绩必须大于90分 2,两科成绩的总分大于160分
方案一 if(语文>70 && 数学 >90 || 语文>90 && 数学 >70 || (语文+数学) > 160分){ System.out.println(“A”); }
方案二 if(((语文>70 && 数学 >70) && (语文>90 || 数学 >90)) || (语文+数学) > 160分){ System.out.println(“A”); }