一、if
if(表达式1){ 表达式2; } |
如果表达式1的值是true,
就执行表达式2
public class HelloWorld { public staticvoid main(String[] args) { boolean b = true; //如果成立就打印yes if(b){ "yes"); } } } |
二、多表达式与一个表达式
public class HelloWorld { public staticvoid main(String[] args) {
boolean b = false; //如果有多个表达式,必须用大括弧包括起来 if(b){ "yes1"); "yes2"); "yes3"); }
//否则表达式2 3 无论b是否为true都会执行
if(b) "yes1"); "yes2"); "yes3");
//如果只有一个表达式可以不用写括弧,看上去会简约一些 if(b){ "yes1"); }
if(b) "yes1");
} } |
三、if避免踩坑
if 使用过程中可能遇到的坑:
在第6行,if后面有一个分号; 而分号也是一个完整的表达式;
(所以if 的条件成了判断是否执行分号的条件了)
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
所以为了避免踩坑,严谨认真的代码风格很重要。一般情况下,该加括号加括号。不要为了偷懒造成不必要的麻烦。
四、if else
else 代表不成立的情况
public class HelloWorld { public staticvoid main(String[] args) { boolean b = false; if (b) "yes"); else "no"); } } |
五、else if
else if 是多条件判断
public class HelloWorld { public staticvoid 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 staticvoid main(String[] args) { Scanner s = newin); 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 staticvoid main(String[] args) { new Operator01(); float urBMI = getBMI(person); if (urBMI<18.5) { "您的BMI指数为:"+ urBMI+",您的体重过轻"); else if (urBMI < 24) { "您的BMI指数为:"+ urBMI+",您的体重处于正常范围"); else if (urBMI < 27) { "您的BMI指数为:"+ urBMI+",您的体重超重"); else if (urBMI < 30) { "您的BMI指数为:"+ urBMI+",您处于轻度肥胖状态"); else if (urBMI < 35) { "您的BMI指数为:"+ urBMI+",您处于中度肥胖状态"); else { "您的BMI指数为:"+ urBMI+",您重度肥胖,急需减肥"); } }
public staticfloat//方法必须是静态的,才能在主方法main中调用。 newin); "请输入您的身高(m):"); float bodyHeight = scanner.nextFloat();
"请输入您的体重(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)