捉一只奶琳

导航

1903021106-段爱滢-Java第四周作业-if语句的编写

项目 内容
课程班级博客链接 19级信计班(本)
这个作业要求链接 第四周作业
我的课程目标 能使用if,else if语句编写代码
这个作业在哪些方面帮助我实现学习目标 通过编写代码学会了if,else if,switch case的用法,明白什么情况用哪种语句编写代码,总结了三种代码的优缺点。

题目1:

  • 模拟一个售票系统,通过判断购票者的年龄来决定票价,借此观察选择结构语句的运行流程。原价100元(0-6岁的儿童免费(包含6岁),7-12岁半价,其余全价)

  • 截图如下

  • 代码如下

package edu.xj.day;

import java.util.Scanner;

public class hhh {
  public static void main(String[]args) {
	 Scanner sc=new Scanner(System.in);
	 System.out.println("请输入需要判断的年龄:");
	  int age=sc.nextInt();
	  if ( age<=6) {
          System.out.println("年龄在0-6岁之间,免费!");	
          
          System.out.println("您需要支付:0元。");
	  }else if( age<=12) {
		  System.out.println("年龄在7-12岁之间,半价!");
		  
		  System.out.println("您需要支付:50元。");
	  }else if( age>12) {
		  System.out.println("不在打折范围内!");
		  
		  System.out.println("您需要支付:100元。");
	  }
	 
  }
}
  • 运行结果

题目2:

  • 假设影响小孩身高的因素有:父母的身高、性别及是否爱好体育锻炼有关,设faHeight和moHeight为父母身高,性别为sex,体育锻炼为sports,

  • 假设若爱好体育锻炼则身高可增加2%

    身高预测公式为:

    男性身高=(faHeight+moHeight)*0.54(cm)

    女性身高=(faHeight*0.923+moHeight)/2(cm)

    程序要求:屏幕提示请输入小孩的性别(男孩输入M,女孩输入F),通过if语句判断键盘输入的是M还是F,是否爱好体育锻炼也可通过类似的方式实现。

    此题需要思考如何判断输入的字符与M/F/Y/N等是否匹配。如性别可采用if(sex == 'M')的方式来判断是否为男性。

  • 截图如下

  • 代码如下

package edu.xj.day;

import java.util.Scanner;

public class xxx {
	public static void main(String[]args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("身高预测请输入您的性别");
		String gender = sc.next();
        System.out.println("请输入您父亲的身高");
        double faHeight = sc.nextDouble();
        System.out.println("请输入您母亲的身高");
        double moHeight = sc.nextDouble();
        System.out.println("您是否爱好体育锻炼");
        String sports = sc.next();
        double num;
        if (gender.equals("M")) {
            if (sports.equals("Y") ) {
                num = (faHeight + moHeight) * 0.54*1.02;
                System.out.println("您的身高为:" + num);
            }
            if (sports.equals("S") ) {
                num = (faHeight + moHeight) * 0.54 ;
                System.out.println("您的身高为:" + num);
            }
         }
        if (gender.equals("F")) {
            if (sports.equals("Y") ) {
                num = (faHeight*0.923+ moHeight) /2 * 1.02;
                System.out.println("您的身高为:" + num);
            }
            if (sports.equals("S") ) {
                num = (faHeight*0.923+ moHeight) /2 ;
                System.out.println("您的身高为:" + num);
            }
        }
	}
}
  • 运行结果

学习心得

1、当我们有一个判断条件的时候,显然用if语句比较方便有效。但当判断条件很多的时候,我们可以使用if语句或者if...eles语句和switch case语句。

2、一般情况下,当判断条件较多的情况下,使用switch case语句的效率会高于使用if...else if语句。

3、(1)if else的优点:if else能应用于更多的场所以if else比较灵活 。

     (2)if else的缺点:if else必须遍历所以得可能值。

4、(1)switch case的优点:当分支较多时,用switch的效率是很高的。因为switch是确定了选择值之后直接跳转到那个特定的分支.

     (2)switch case的缺点:switch…case占用较多的代码空间,因为它要生成跳表,特别是当case常量分布范围很大但实际有效值又比较少的情况,switch…case的空间利用率将变得很低。

5、switch..case与if...else if的根本区别在于,switch..case会根据你的条件直接跳转到相应的case语句那。switch..case不用像if...else if那样遍历条件分支直到命中条件,而只需访问对应索引项从而到达目的语句那。

posted on 2022-03-27 16:54  捉一只奶琳  阅读(72)  评论(0编辑  收藏  举报