“Java if条件语句”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
第三种形式
第95行: 第95行:
 
*练习:编程实现计算月份天数。程序运行时用户输入具体的年份和月份,然后输出对应的天数。比如,用户输入的年份为2018,月份为1,则输出31天。
 
*练习:编程实现计算月份天数。程序运行时用户输入具体的年份和月份,然后输出对应的天数。比如,用户输入的年份为2018,月份为1,则输出31天。
  
==if语句的多条件==
+
===if语句的多条件===
 
  <nowiki>if (判断条件)  
 
  <nowiki>if (判断条件)  
 
{  
 
{  
 
执行语句块1
 
执行语句块1
 
}</nowiki>
 
}</nowiki>
if语句的判断条件里可以放置多个条件,彼此用逻辑运算符连接起来。
+
 
引子:如果手机价格低于2000,那么我就买
 
<nowiki>float price=1999f;
 
if(price<2000){
 
    System.out.println("我购买。");
 
}</nowiki>
 
 
例题:如果手机价格低于2000,或者能分期付款,那么我就买
 
例题:如果手机价格低于2000,或者能分期付款,那么我就买
 
  <nowiki>float price=1999f;boolean  fenqi=False;
 
  <nowiki>float price=1999f;boolean  fenqi=False;
第111行: 第106行:
 
     System.out.println("我购买。");
 
     System.out.println("我购买。");
 
  }</nowiki>
 
  }</nowiki>
例题:如果手机价格低于2000,并且能分期付款,那么我就买
 
  
<nowiki>float price=1999f;boolean  fenqi=False;
 
if(price<2000&&fenqi==True){//注意这里的等号和赋值运算符是不一样的
 
    System.out.println("我购买。");
 
}</nowiki>
 
  
 
例题:如果手机价格低于2000,并且能分期付款,并且零首付,那么我就买
 
例题:如果手机价格低于2000,并且能分期付款,并且零首付,那么我就买
第125行: 第115行:
 
  }</nowiki>
 
  }</nowiki>
  
<nowiki>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("太贵了,买不起~");
 
        }
 
}
 
 
}</nowiki>
 
  
 
练习:如果手机价格低于2000,并且能分期付款;或者手机品牌是苹果的,那么我就买
 
练习:如果手机价格低于2000,并且能分期付款;或者手机品牌是苹果的,那么我就买
第158行: 第126行:
 
判断条件为false时的执行语句块2
 
判断条件为false时的执行语句块2
 
}</nowiki>
 
}</nowiki>
 +
 
*例如:当接收用户的输入时,如果监测指数小于100,就输出“空气质量很好,请自由活动!否则的话,输出“空气质量不好,请留在室内”,
 
*例如:当接收用户的输入时,如果监测指数小于100,就输出“空气质量很好,请自由活动!否则的话,输出“空气质量不好,请留在室内”,
 
  <nowiki>Scanner scanner = new Scanner(System.in);
 
  <nowiki>Scanner scanner = new Scanner(System.in);
第219行: 第188行:
 
     System.out.println("空气严重污染,所有人群留在室内");
 
     System.out.println("空气严重污染,所有人群留在室内");
 
   }}</nowiki>
 
   }}</nowiki>
 +
 +
例题:分段函数的计算
 +
 +
编写程序,实现分段函数计算:
 +
当x<0时 ,y=0;当 0<=x<5时 ,y=x; 当 5<=x<10时,y=3x-5;当10<=x<20时,y=0.5x-2 ;当x>=20时,y=0;
 +
 +
 
*例:面馆程序:
 
*例:面馆程序:
  
第264行: 第240行:
 
}</nowiki>
 
}</nowiki>
  
例题:分段函数的计算
+
 
 +
 
 +
练习题:网站功能选择
 +
 
 +
编写程序,模仿上述例子,进行你的网站的功能选择。
  
 
练习题:个人所得税的计算
 
练习题:个人所得税的计算

2020年3月16日 (一) 14:10的版本

问题引出

问题:对各种情况进行判断。

以商院面馆为例:

  • 选择什么面 ?
  • 您几位 ?
  • 您堂吃还是外卖 ?
  • 您吃汤面吗? 还是吃炒面 ? 还是吃干拌面 ?


package section_if;
import java.util.Scanner;
public class test01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		float mian = 10.0f;//面的价格
		float suan = 2.0f;//酸梅汤
		float total_pay =0f;//总钱数
        Scanner sc = new Scanner(System.in);
        //问用户要几碗面?
        System.out.println("请问您要几碗面?");
        int mian_num = sc.nextInt();
        total_pay = mian_num * mian;
        
        //问顾客需不需要饮料(饮料2元一杯)
        System.out.println("请问您?");
        System.out.printf("您一共消费了%f元",total_pay);
        sc.close();
	}

}

更大而光之的情况,在各种程序的运行中,总少不了根据一定的条件执行或者不执行一定的语句,

这就是程序流程中的选择结构。在Java中,用if语句来进行选择结构的判断。

if语句

  • if语句使用布尔表达式或布尔值作为分支条件来进行分支控制。if语句有如下三种形式。

第一种形式

if (判断条件) 
{ 
执行语句块1
}
               
  • Java2-13.png
  • 例1:提示空气质量
int value = 113;
 if(value >100){
   System.out.println("空气质量不好,请留在室内!");
 }

提问: 这里的if是什么意思 ?计2 占强

  • 变化:比上一段增加了一个输入
 Scanner scanner = new Scanner(System.in);
//获取用户对于菜单的选择
String air_value = scanner.next();
int value =  Integer.parseInt(air_value);
if(value >100) {
  System.out.println(""空气质量不好,请留在室内!");
}
package demo1;
import java.util.Scanner;
public class Hello123 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// TODO Auto-generated method stub
		float mian = 10.0f;//面的价格
		float suan = 2.0f;//酸梅汤
		float total_pay =0f;//总钱数
		Scanner sc = new Scanner(System.in);
		//问用户要几碗面?
		System.out.println("请问您要几碗面?");
		int num = sc.nextInt();
		total_pay = num * mian;
		        
		 //问顾客需不需要饮料(饮料2元一杯)
		
		 System.out.println("请问您是否需要饮料?Y/n");
		 String s = sc.next( );
		 if( s.equals("y")){
			 total_pay = total_pay + num * suan;
		 }
		 
		 System.out.printf("您一共消费了%f元",total_pay);
		 sc.close();
	}

}


  • 练习:编程实现计算月份天数。程序运行时用户输入具体的年份和月份,然后输出对应的天数。比如,用户输入的年份为2018,月份为1,则输出31天。

if语句的多条件

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

例题:如果手机价格低于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("我购买。");
 }


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

第二种形式

if (判断条件) 
{ 
判断条件为true时的执行语句块1
} else {
判断条件为false时的执行语句块2
}
  • 例如:当接收用户的输入时,如果监测指数小于100,就输出“空气质量很好,请自由活动!否则的话,输出“空气质量不好,请留在室内”,
Scanner scanner = new Scanner(System.in);
//获取用户对于菜单的选择
String air_value = scanner.next();
int value =  Integer.parseInt(air_value);
if(value <100) {
  System.out.println("空气质量很好,请自由活动!");
}else{
  System.out.println("空气质量不好,请留在室内~");
}

假设我们从控制台获取的订单用字符串表示为 s=“堂吃_老北京炸酱面+1_口味:辣”),怎样从订单中去提取有用信息 ?

问题:根据客户需求 决定餐品是否 打包

package demo1;
import java.util.Scanner;
public class Tangchi {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("客官,请问您是堂吃还是外送?"
        		+"1.堂吃/2.外送");
        String s = sc.next();
        if(s.equals("1")){
        	System.out.println("堂吃一位!");
        }else{
        	System.out.println("外送一位!");
        }
	}

}

  • 练习:编程实现用户登录功能。程序运行时用户输入用户名和密码,然后判断用户名和密码是否均为admin,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败!”。

第三种形式

if (判断条件1) 
{ 
判断条件1为true时的执行语句块1
} else  if(判断条件2){
//判断条件1为false,判断条件2为true
判断条件2为true时的执行语句块2
} 
……  //可以有零个或多个else if语句
else {  //最后的else语句也可以省略
所有判断条件均为false时的执行语句块n+1
}
  • Java2-14.png
  • 例如:当接收用户的输入时,如果监测指数小于100,就输出“空气质量很好,请自由活动!否则的话如果监测指数小于150,输出“空气质量轻度污染,请加强防护”,否则的话如果监测指数小于200,输出“空气中度污染,敏感人群留在室内”,否则的话就输出,“空气严重污染,所有人群留在室内”
Scanner scanner = new Scanner(System.in);
//获取用户对于菜单的选择
String air_value = scanner.next();
int value =  Integer.parseInt(air_value);
if(value <100) {
    System.out.println("空气质量很好,请自由活动!");
}else if (value <150){//100<=value <150
    System.out.println("空气质量轻度污染,请加强防护");
}else if (value <200){//150<=value <200
    System.out.println("空气中度污染,敏感人群留在室内");
}else{//value >=200
    System.out.println("空气严重污染,所有人群留在室内");
   }}

例题:分段函数的计算

编写程序,实现分段函数计算: 当x<0时 ,y=0;当 0<=x<5时 ,y=x; 当 5<=x<10时,y=3x-5;当10<=x<20时,y=0.5x-2 ;当x>=20时,y=0;


  • 例:面馆程序:
package demo1;
import java.util.Scanner;
public class MianType {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("客官,您几位?");
        int num = sc.nextInt();
        System.out.println("请问你们吃什么面?");
        System.out.println("a.老北京炸酱面;b.刀削面"
        		          +"c.油泼面");
        String s = sc.next();
        if(s.equals("a")){
        	System.out.printf("老北京炸酱面%d碗",num);
        }else if(s.equals("b")){
        	System.out.printf("刀削面%d碗",num);
        }else if(s.equals("c")){
        	System.out.printf("油泼面%d碗",num);
        }else{
        	System.out.println("不好意思,您需求的面我们这里没有");
        
        }
	}

}

  • 例2:当接收用户的输入为1时,输出“您选择了处理查询所有书籍的业务”;输入为2时,输出“您选择了处理按书籍编号查询”;输入为3时,输出“您选择了购买书籍”;否则输出“您的输入不正确,必须在1~6范围内!”。
Scanner scanner = new Scanner(System.in);
//获取用户对于菜单的选择
String value = scanner.next();
int choise = Integer.valueOf(value);
if(choice == 1) {
  System.out.println("您选择了处理查询所有书籍的业务");
} else if(choice == 2) {
  System.out.println("您选择了处理按书籍编号查询");
} else if(choice == 3) {
  System.out.println("您选择了购买书籍");
} else {
  System.out.println("您的输入不正确,必须在1~6范围内!");
}


练习题:网站功能选择

编写程序,模仿上述例子,进行你的网站的功能选择。

练习题:个人所得税的计算

  • 练习:利用if…else if…else的形式编程实现计算月份天数。程序运行时用户输入具体的年份和月份,然后输出对应的年份要求月份的天数。比如,用户输入的年份为2018,月份为1,则输出31天。
           Scanner sc =new Scanner(System.in);
            System.out.println("请输入年份:");
            int year =  sc.nextInt();
            System.out.println("请输入月份:");
            int month =  sc.nextInt();
            switch (month){
               case 1:
               case 3:
               case 5:
               case 7:
               case 8:
               case 10:
               case 12:            	   
            	   	System.out.println("该月有31天");
            	   	break;
               case 2:
            	    if(year%4==0){
            	    	System.out.println("该月有29天");
            	    }else{
            	    	System.out.println("该月有28天");
            	    }
            	    break;
              default:
           	   	    System.out.println("该月有30天");
           	   	    break;            	   	
            }


  • 在上面的条件语句种,if、else if、else后花括号括起来的多行代码被称为代码块,一个代码块通常被当成一个整体来执行(除非运行过程中遇到return、break、continue等关键字,或者遇到了异常),因此这个代码块也被称为条件执行体。

Java练习题

  • 用if语句判断该年是否是闰年,用户输入一个2001-2099中的一个数,如果是闰年,则提示“****年是闰年”,否则,什么也不输出。
闰年是公历中的名词。
普通年(不能被100整除的年份)能被4整除的为闰年。(如2004年就是闰年,1999年不是闰年);
世纪年(能被100整除的年份)能被400整除的是闰年。(如2000年是闰年,1900年不是闰年);
  • 用if...else语句实现用户登录功能。程序运行时用户输入用户名和密码,然后判断用户名和密码是否均为admin,如果是,则输出“登录成功!”;否则,输出“用户名和密码不正确,登录失败!”。
  • 从键盘接收用户输入的成绩分数a,用if...else if...else if 语句实现下列功能:如果90<=a<100,输出“该同学的成绩为A”,如果80<=a<90,输出“该同学的成绩为B”,如果60<=a<80,输出“该同学的成绩为C”,如果a<60,输出“该同学的成绩为D”.
  • 练习:猜数字

程序中设置一个0-100的的数,接收用户输入,如果用户输入的数比这个数大,就提示"你输入的数值偏大",如果用户输入的比这个数小,就提示"您输入的数值偏小"

练习题答案

  • 第1题:判断闰年(计1 徐洁提供)
import java.util.Scanner; 
public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s= new Scanner(System.in);
		System.out.println("请输入年份(2001-2009):");
		int year=s.nextInt();
		if(year%100!=0&&year%4==0){
			System.out.println(year+"是闰年");}
		else{
			System.out.println(year+"不是闰年");
			}
		s.close();
		}
	}
  • 判断密码:(计1 徐洁提供)
import java.util.Scanner; 
public class Test2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s= new Scanner(System.in);
		System.out.println("请输入用户名:");
		String name=s.next();
		System.out.println("请输入密码:");
		String password=s.next();
		if(name.equals("admin")&&password.equals("admin")){
			System.out.println("登录成功!");}
		else{
			System.out.println("用户名和密码不正确,登录失败!");
			}
		s.close();
		}
	}

  • 成绩判定:(计1 徐洁提供)
import java.util.Scanner; 
public class Test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入成绩:");
		int i = scanner.nextInt();
		if(i <60) {
		  System.out.println("您的成绩为D");
		} else if(i <80) {
		  System.out.println("您的成绩为C");
		} else if(i <90) {
		  System.out.println("您的成绩为B");
		} else if(i <100) {
			  System.out.println("您的成绩为A");
			} 
			
		scanner.close();
		}
	}