how2j.cn

条件判断

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



8分22秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



示例 1 : if   
示例 2 : 多表达式与一个表达式   
示例 3 : if 使用过程中可能遇到的坑   
示例 4 : if else   
示例 5 : else if   
示例 6 : 练习-BMI   
示例 7 : 答案-BMI   
示例 8 : 练习-闰年   
示例 9 : 答案-闰年   

示例 1 :

if


if(表达式1){
表达式2;
}

如果表达式1的值是true,
就执行表达式2
if
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 = true;
		//如果成立就打印yes
		if(b){
			System.out.println("yes");
		}
		
	}
}
示例 2 :

多表达式与一个表达式

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"); } }
示例 3 :

if 使用过程中可能遇到的坑

在第6行,if后面有一个分号; 而分号也是一个完整的表达式
如果b为true,会执行这个分号,然后打印yes
如果b为false,不会执行这个分号,然后打印yes
这样,看上去无论如何都会打印yes
public class HelloWorld { public static void main(String[] args) { boolean b = false; if (b); System.out.println("yes"); } }
public class HelloWorld {
	public static void main(String[] args) {

		boolean b = false;

		if (b);
			System.out.println("yes");

	}
}
示例 4 :

if else

else 代表不成立的情况
if else
public class HelloWorld { public static void main(String[] args) { boolean b = false; if (b) System.out.println("yes"); else System.out.println("no"); } }
public class HelloWorld {
	public static void main(String[] args) {

		boolean b = false;

		if (b)
			System.out.println("yes");
		else
			System.out.println("no");

	}
}
示例 5 :

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); } }
示例 6 :

练习-BMI

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
基于前面的操作符练习-BMI,做基于判断的改进:

使用Scanner收集你的身高体重,并计算出你的BMI值是多少

BMI的计算公式是 体重(kg) / (身高*身高)

比如邱阳波的体重是72kg, 身高是1.69,那么这位同学的BMI就是
72 / (1.69*1.69) = ?

然后通过条件判断BMI的范围,打印出是超重还是正常

参考: 使用Scanner读取浮点数的办法
练习-BMI
示例 7 :

答案-BMI

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

5分4秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


答案-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); } }
示例 8 :

练习-闰年

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
判断某一年是否为闰年
通过Scanner 输入一个年份,然后判断概念是否是闰年

闰年判断标准(满足任何一个)
1. 如果能够被4整除,但是不能被100整除
2. 能够被400整除
练习-闰年
示例 9 :

答案-闰年

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

4分42秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


答案-闰年
import java.util.Scanner; public class HelloWorld { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入年份"); int year = s.nextInt(); if ( (0 == year % 4 && 0 != year % 100) || 0 == year % 400) System.out.println(year + "是闰年"); else System.out.println(year + "不是闰年"); } }
import java.util.Scanner;
 
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入年份");
        int year = s.nextInt();
 
        if ( (0 == year % 4 && 0 != year % 100) || 0 == year % 400)
            System.out.println(year + "是闰年");
        else
            System.out.println(year + "不是闰年");
 
    }
}


HOW2J公众号,关注后实时获知布最新的教程和优惠活动,谢谢。


问答区域    
2018-01-24 BMI答案
臭牛芒



BMI答案
package j2se;
import java.util.Scanner;
public class Helloworld {
	public static void main(String[] args) {
		String you="重度肥胖";
        Scanner s = new Scanner(System.in);
        System.out.println("请输入身高:(m):");
       float a=s.nextFloat();
       System.out.println("请输入体重:(kg)");
       float b = s.nextFloat();
       float BMI=b/(a*a);
       System.out.println("当前的BMI是:"+BMI);
       if (BMI<18.5)  {you="体重过轻";}
       else if (BMI>=18.5 && BMI<24){ you = "正常范围";}
       else if (BMI>=24 && BMI<27){ you = "体重过重";}
       else if (BMI>=27 && BMI<30){ you = "轻度肥胖";}
       else if (BMI>=30 && BMI<35){ you = "中度肥胖";}
       else { you = "重度肥胖";}
    		   
       System.out.println("身体状态是:"+you);
    }
	

}

							


4 个答案

m86132917 答案时间:2018-02-05
import java.util.*; public class NewClass7 { public static void main (String [] args){ Scanner smy=new Scanner(System.in); System.out.println("请输入你的身高(m):"); double shenGao=smy.nextDouble(); System.out.println("请输入你的体重(kg):"); double tiZhong=smy.nextDouble(); double a=tiZhong/(shenGao*shenGao); if(a<18.5){ System.out.println("体重过轻"); }else if(a>=18.5&&a<=24){ System.out.println("体重正常"); }else if(a>=24&&a<=27){ System.out.println("微胖"); }else if(a>=27&&a<=30){ System.out.println("轻度肥胖"); }else if(a>=30&&a<=35){ System.out.println("中度肥胖"); }else{ System.out.println("重度肥胖;马上就要死了;"); } } }

m86132917 答案时间:2018-02-05
import java.util.*; public class NewClass6 { public static void main (String[] args){ Scanner smy=new Scanner (System.in); System.out.println("请输入一个年份"); int nianFen=smy.nextInt(); String a=nianFen%4==0&&nianFen%100!=0||nianFen%400==0?"这是一个瑞年":"这是一个平年"; System.out.println(a); } }

vippipi 答案时间:2018-01-30
import java.util.Scanner; public class Yeal{ public static void main(String[] args) { Scanner s = new Scanner(System.in); int yeal = s.nextInt(); String day = ((yeal%4==0 && yeal%100 != 0) || yeal%400 == 0)?"闰年":"非闰年"; System.out.println("请输入年份:"+yeal+" "+day); } }

臭牛芒 答案时间:2018-01-24




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2018-01-09 小白提问,为啥我的判断结果会出来两个??
peipeiChan



根据题目进行判断 BMI出来的值对应的结果出来了2个
package base1;

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.println("请输入身高(m):");
        Float a = s.nextFloat();
        System.out.println("请输入体重(Kg):");
        Float b = s.nextFloat();
        
        Float c = b/(a*a);
        System.out.println("BMI:"+c);
        
        if (c < 18.5) 
        	System.out.println("体重过轻");
        
        if (c >= 18.5 && c < 24)
        	System.out.println("体重正常");
        
        if (c >= 24 && c < 27)
        	System.out.println("体重过重");
        
        if (c >= 27 && c < 30)
        	System.out.println("轻度肥胖");
        
        if (c >= 30 && c < 35)
        	System.out.println("中度肥胖");
        
        else
        	System.out.println("重度肥胖");
    }
}
请输入身高(m):
1.60
请输入体重(Kg):
66
BMI:25.781248
体重过重
重度肥胖


4 个答案

Reol_Frank 答案时间:2018-01-13
mdzz 没添加过答案,搞反了。。。

Reol_Frank 答案时间:2018-01-13
class JudgeField{ // ComputeBMI cb = new ComputeBMI(); // 在这里声明对象为什么就报错:Cannot resolve symble "computeBMI"?而在方法内声明就不会报错 // cb.computeBMI(); public void judgeField(){ ComputeBMI cb = new ComputeBMI(); double bmi = cb.computeBMI01(); System.out.println("bmi: " + bmi); if (bmi < 18.5) { System.out.println("You are so gentle"); }else if (bmi < 24) { System.out.println("You are normal"); }else if (bmi < 27) { System.out.println("You are heavy."); }else if (bmi < 30) { System.out.println("You are heavyer"); }else if (bmi < 35){ System.out.println("You are Heavyest"); }else { System.out.println("Are u a pig?"); } } } public class IfSimpleExercise { public static void main(String[] args){ JudgeField jf = new JudgeField(); jf.judgeField(); } }

YYyoung 答案时间:2018-01-11
每一个if()代码块都会被执行一次

z菌 答案时间:2018-01-09
import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入身高"); double height = scan.nextDouble(); System.out.println("请输入体重"); Scanner scanner = new Scanner(System.in); double weight = scanner.nextDouble(); double bmi = weight / (height *height); if (bmi <18.5){ System.out.println("体重过轻" +bmi); }else if (bmi >=18.5 && bmi<24){ System.out.println("正常范围" + bmi); }else if (bmi >= 24 && bmi <27){ System.out.println("体重过重" + bmi); }else if (bmi >=27 && bmi <30){ System.out.println("轻度肥胖" + bmi); }else if (bmi >= 30 && bmi<35){ System.out.println("重度肥胖" + bmi); }else if (bmi >= 35){ System.out.println("重度肥胖" + bmi); } } }




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-12-21 String status = " "; 什么意思
2017-12-13 闰年作业
2017-12-05 体重的代码这样可以么?
2017-11-22 学习之余,轻松一下
2017-11-08 在if的表达式中&和&&有什么区别吗?
2017-10-20 用三元表达式写的答案(备份)
2017-10-18 自己写的关于闰年的作业
2017-10-05 为什么这样写year % 100==!0和这样写year % 100=!0是错的
2017-10-05 请问大家if判断错在哪
2017-09-18 代码备份
2017-09-18 老师,写出来是对的,但是可不可以更简洁一些呢?
2017-09-13 闰年问题
2017-08-26 关于If-else语句的问题
2017-08-26 请问站长问什么经常使用float而不是double呢,还有在键盘输入float数据的时候需要在后面加f吗?
2017-08-05 还是有报错
2017-08-05 这个报错是什么原因导致的呢?
2017-06-19 闰年
2017-06-19 答案
2017-06-01 判断闰年逻辑与算符使用
2017-02-25 答案
2016-12-02 为什么写18.5<=BMI<24会报错,BMI<24这样写就不会报错
2016-11-11 我用的&答案用的&&
2016-10-25 为什么else报错
2016-10-12 if(进行判断),开始写成了if(b=0)
2016-10-12 自己的代码做备份吧
2016-06-02




提问之前请登陆
关于 JAVA 基础-控制流程-if 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 389538688
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图