一、if
if(表达式1){ 表达式2; } |
如果表达式1的值是true,
就执行表达式2
public class HelloWorld { public static void main(String[] args) { boolean b = true; //如果成立就打印yes if(b){ System.out.println("yes"); } } } |
二、多表达式与一个表达式
public class HelloWorld { public static void main(String[] args) {
boolean b = false; //如果有多个表达式,必须用大括弧包括起来 if(b){ System.out.println("yes1"); System.out.println("yes2"); System.out.println("yes3"); }
//否则表达式2 3 无论b是否为true都会执行
if(b) System.out.println("yes1"); System.out.println("yes2"); System.out.println("yes3");
//如果只有一个表达式可以不用写括弧,看上去会简约一些 if(b){ System.out.println("yes1"); }
if(b) System.out.println("yes1");
} } |
三、if避免踩坑
if 使用过程中可能遇到的坑:
在第6行,if后面有一个分号; 而分号也是一个完整的表达式;
(所以if 的条件成了判断是否执行分号的条件了)
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
所以为了避免踩坑,严谨认真的代码风格很重要。一般情况下,该加括号加括号。不要为了偷懒造成不必要的麻烦。
四、if else
else 代表不成立的情况
public class HelloWorld { public static void main(String[] args) { boolean b = false; if (b) System.out.println("yes"); else System.out.println("no"); } } |
五、else if
else if 是多条件判断
public class HelloWorld { public static void main(String[] args) {
//如果只使用 if,会执行4次判断 int i = 2; if (i==1) System.out.println(1); if (i==2) System.out.println(2); if (i==3) System.out.println(3); if (i==4) System.out.println(4);
//如果使用else if, 一旦在18行,判断成立, 20行和22行的判断就不会执行了,节约了运算资源 if (i==1) System.out.println(1); else if (i==2) System.out.println(2); else if (i==3) System.out.println(3); else if (i==4) System.out.println(4);
} } |
六、练习--BMI
题目:
使用Scanner收集你的身高体重,并计算出你的BMI值是多少
BMI的计算公式是 体重(kg) / (身高*身高)
比如邱阳波的体重是72kg, 身高是1.69,那么这位同学的BMI就是
72 / (1.69*1.69) = ?
然后通过条件判断BMI的范围,打印出是超重还是正常
要求效果:
官方答案:
import java.util.Scanner;
public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入身高(m):"); float height = s.nextFloat(); System.out.println("请输入体重(kg):"); float weight = s.nextFloat(); float BMI = weight / (height * height); System.out.println("当前的BMI是: " + BMI);
String status = "";
if (BMI < 18.5) status = "体重过轻"; else if ( BMI < 24) status = "正常范围"; else if (BMI < 27) status = "体重过重"; else if (BMI < 30) status = "轻度肥胖"; else if (BMI < 35) status = "中度肥胖"; else status = "重度肥胖";
System.out.println("身体状态是: " + status);
} } |
个人整理答案:
public class Operator01A { public static void main(String[] args) { Operator01 person = new Operator01(); float urBMI = getBMI(person); if (urBMI<18.5) { System.out.println("您的BMI指数为:"+ urBMI+",您的体重过轻"); }else if (urBMI < 24) { System.out.println("您的BMI指数为:"+ urBMI+",您的体重处于正常范围"); }else if (urBMI < 27) { System.out.println("您的BMI指数为:"+ urBMI+",您的体重超重"); }else if (urBMI < 30) { System.out.println("您的BMI指数为:"+ urBMI+",您处于轻度肥胖状态"); }else if (urBMI < 35) { System.out.println("您的BMI指数为:"+ urBMI+",您处于中度肥胖状态"); }else { System.out.println("您的BMI指数为:"+ urBMI+",您重度肥胖,急需减肥"); } }
public static float getBMI(Object object){//方法必须是静态的,才能在主方法main中调用。 Scanner scanner = new Scanner(System.in); System.out.println("请输入您的身高(m):"); float bodyHeight = scanner.nextFloat();
System.out.println("请输入您的体重(kg):"); float bodyWeight = scanner.nextFloat();
float BMI = bodyWeight/(bodyHeight*bodyHeight); return BMI; } } |
七、练习--闰年
题目:
判断某一年是否为闰年
通过Scanner输入一个年份,然后判断该年是否是闰年
闰年判断标准(满足任何一个)
1. 如果能够被4整除,但是不能被100整除
2. 能够被400整除
要求效果:
官方答案:
核心代码:
if ( (0 == year % 4 && 0 != year % 100) || 0 == year % 400)