Java if语句的应用(二)

来自CloudWiki
Cloud17讨论 | 贡献2020年3月18日 (三) 06:46的版本 if...else if 多重判断
跳转至: 导航搜索

问题引出

编程实现计算月份天数,用户输入年份和月份,如果是1月、3月、5月、7月等月,输出“该月有31天”,如果是4月、6月、9月等月,输出“该月有30天”,如果是2月,输出“该月有28(29) 天

if语句的嵌套

if语句的嵌套说的是,在已有的if语句里嵌套新的if语句。

例题:输入一个数,判断它是否是偶数和是否能被3整除

Scanner sc = new Scanner(System.in);
int t=sc.nextInt;
if(t%2==0){
   if(t%3==0){
       System.out.println("Divisible by 3 and 2");
   }else{
       System.out.println("divisible by 2 not divisible by 3");
   }
}else{
   if(t%3==0){
       System.out.println("divisible by 3 not divisible by 2")
   }else{
       System.out.println("not Divisible by 2 not divisible by 3");
   }
}
  • 面馆例题:询问顾客吃什么面,并询问其是否加蛋、加油渣 ?将结果反馈给后台。


练习:手机店“如果手机价格低于2000,并且能分期付款,那么我就买”怎么写:

float price=1999f;boolean  fenqi=False;
if(price <2000){
  if(fenqi==True){
     System.out.println("我购买。");
  }else{
     System.out.println("我不买。");
  }
}else {
     System.out.println("我不买。");
}

if语句的多条件

if (判断条件) 
{ 
执行语句块1
}

if语句的判断条件里可以放置多个条件,彼此用逻辑运算符连接起来。

判断闰年:

int[] DAYS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
		
		 Scanner in = new Scanner(System.in);
		 
	        System.out.print("输入年份:");
	        int year = in.nextInt();
	        System.out.print("输入月份:");
	        int month = in.nextInt();
	 
	        String str = year + "-" + month + ":";
	 
	        // 闰年二月份
	        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0) && month == 2) {
	            str += 29;
	        } else {
	            str += DAYS[month - 1];
	        }
	 
	        System.out.println(str);
	        in.close();
		}
	    


引子:如果手机价格低于2000,那么我就买

float price=1999f;
 if(price<2000){
     System.out.println("我购买。");
 }

例题:如果手机价格低于2000,或者能分期付款,那么我就买

float price=1999f;boolean  fenqi=False;
 if(price<2000||fenqi=True){
     System.out.println("我购买。");
 }

例题:如果手机价格低于2000,并且能分期付款,那么我就买

float price=1999f;boolean  fenqi=False;
 if(price<2000&&fenqi==True){//注意这里的等号和赋值运算符是不一样的
     System.out.println("我购买。");
 }

例题:如果手机价格低于2000,并且能分期付款,并且零首付,那么我就买

float price=1999f;boolean  fenqi=False;float firstPay=0f;
 if(price<2000 && fenqi==True && firstPay==0){//注意这里的等号和赋值运算符是不一样的
     System.out.println("我购买。");
 }
import java.util.Scanner;
public class happy09 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        float price ;boolean fenqi;boolean firstpay;
        System.out.println("老板,请问手机多少钱?");
        Scanner sc = new Scanner(System.in);
        price = sc.nextFloat();
        System.out.println("老板,请问支不支持分期?");
        fenqi = sc.nextBoolean();
        System.out.println("老板,请问支不支持零首付?");
        firstpay = sc.nextBoolean();
        
        if(price <=1000 && fenqi == true && firstpay == true) {
        	System.out.println("小Case!");
        }else {
        	System.out.println("太贵了,买不起~");
        }
	}

}

练习:如果手机价格低于2000,并且能分期付款;或者手机品牌是苹果的,那么我就买 练习:如果手机价格低于于2000,或者能分期付款;满足这一条件的同时,并且手机品牌是苹果的,那么我就买

if...else if 多重判断

  • 使用if...else 计算客户的BMI值,体质指数(BMI)=体重(kg)÷(身高(m)*身高(m)),根据用户输入的身高和体重进行计算,如果BMI值低于18.5,显示“您的体重过轻”;如果BMI值值在18.5-23.9之间,显示“您的体型完全正常,请继续保持”;如果BMI值值在24-27之间,显示“您的体型有些超重”;如果BMI值在27以上,显示“您的体重严重超重,请加强锻炼!”
import java.util.Scanner;


public class mly {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		//获取用户对于菜单的选择
		String bmi = scanner.next();
		int value =  Integer.parseInt(bmi);
		if(value <18.5) {
		    System.out.println("您的体重过轻");
		}else if (value <23.9){//18.5<=value <23.9
		    System.out.println("您的体形完全正常");
		}else if (value <27){//24<=value <27
		    System.out.println("您的体重有些超重");
		}else{//value >=27
		    System.out.println("您的体重完全超重,请加强锻炼。");
		   }
		scanner.close();
		}
	}

Java练习题

1.完成‘猜数字’游戏的改进版,使玩家能连续多次输入

2.用if+逻辑运算符完成以下语句:

如果手机价格低于2000,那么我就买
如果手机价格低于2000,或者能分期付款,那么我就买
如果手机价格低于2000,并且能分期付款,那么我就买
如果手机价格低于2000,并且能分期付款,并且零首付,那么我就买
如果手机价格低于2000,并且能分期付款;或者手机品牌是苹果的,那么我就买
如果手机价格低于2000,或者能分期付款;满足这一条件的同时,并且手机品牌是苹果的,那么我就买

3.练习:应用if嵌套结构计算上一节中的例题:

当接收用户的输入时,如果监测指数小于100,就输出“空气质量很好,请自由活动!否则的话如果监测指数小于150,输出“空气质量轻度污染,请加强防护”,否则的话如果监测指数小于200,输出“空气中度污染,敏感人群留在室内”,否则的话就输出,“空气严重污染,所有人群留在室内”

练习题答案

计1 徐洁和苗璐瑶同学提供。

1.猜数字:

package lianxi;
import java.util.Scanner; 

public class Text { 

       public static void main(String[] args) {

              // TODO Auto-generated method stub   

             int num = 50;

              while(true){

                     Scanner scan = new Scanner(System.in);

                     System.out.println("输入数字:");

                     int t = scan.nextInt();

                     String str1 = (t > num) ?"你输入的数值偏大" :"你输入的数值偏小";

                     System.out.println("输入的数据为:" + str1);  
            }     

      }             
}

2. 手机购买:

package lianxi;

public class Text3 { 

       public static void main(String[] args) {

              // TODO Auto-generated method stub
              float price = 1999f;
              String name = "apple";
              boolean fenqi = true;
              int firstpay = 0;

              if(price<2000){
                     System.out.println("我就买");
              }else {
                     System.out.println("我bu买");
              }

              if (price<2000 && fenqi==true){
                     System.out.println("我就买");

              }else {
                     System.out.println("我bu买");
              }

              if (price<2000 && fenqi==true && firstpay==0){
                    System.out.println("我就买");

              }else {
                    System.out.println("我bu买");
              }

              if ((price<2000 && fenqi==true) || name=="apple"){
                    System.out.println("我就买");
              }else {
                    System.out.println("我bu买");
              }

              if ((price<2000 ||fenqi==true )&& name=="apple")){
                     System.out.println("我就买");
              }else {
                     System.out.println("我bu买");

              }

       }

}

3.空气质量:由计2 周浩同学提供

package lian;

import java.util.Scanner;

public class san {

 

       public static void main(String[] args) {

              // TODO Auto-generated method stub

              Scanner scan = new Scanner(System.in);

                 System.out.println("请输入监测指数:");

                 int t=scan.nextInt();

 

                 if(t<150){

                        if(t<100){

                             System.out.println("空气质量很好,请自由活动!");

                       }else{

                             System.out.println("空气质量轻度污染,请加强防护");

                       }

                 }else{

                       if(t<200){

                             System.out.println("空气中度污染,敏感人群留在室内");

                       }else{

                             System.out.println("空气严重污染,所有人群留在室内");

                       }

                 }

                 scan.close();

               }

              }

结果:

请输入监测指数:

99

空气质量很好,请自由活动!

返回 Java程序设计