【Java】基础练习(二)

1.编写一个简单的计算器程序,要求用户输入两个数和操作符(+、-、*、/),然后根据操
作符进行相应的运算,并输出结果。如果输入的运算符不是有效的运算符,则输出"无效的
运算符"。

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
package kfm;
import java.util.Scanner;
public class Text01 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入第一个数:");
        double num1 = in.nextDouble();

        System.out.println("请输入第二个数:");
        double num2 = in.nextDouble();

        System.out.println("请选择运算符(+ - * /):");
        String operator = in.next();

        switch (operator) {
            case "+" -> {
                double result1 = num1 + num2;
                System.out.println("两数相加的结果是:" + result1);
            }
            case "-" ->{
                double result2 = num1 - num2;
                System.out.println("两数相减的结果是:" + result2);
            }
            case "*" ->{
                double result3 = num1 * num2;
                System.out.println("两数相乘的结果是:" + result3);
            }
            case "/" ->{
                if (num2 != 0) {
                    double result4 = num1 / num2;
                    System.out.println("两数相除的结果是:" + result4);
                } else{
                    System.out.println("除数不能为0,请重新输入!");
                }
            }
            default -> System.out.println("无效的运算符");
        }
    }
}

在这里插入图片描述

2.编写一个程序,根据用户输入的月份(1 到 12),输出该月份所属的季节。假设春季是 3
到 5 月,夏季是 6 到 8 月,秋季是 9 到 11 月,冬季是 12、1 和 2月。如果输入的月份超
出了范围,输出"输入错误"。

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
package kfm;
import java.util.Scanner;
public class Text02 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入月份:");
        int mouth = in.nextInt();

        switch (mouth){
            case 3 , 4 , 5 -> System.out.printf("%d月是春季\n", mouth);
            case 6 , 7 , 8 -> System.out.printf("%d月是夏季\n" , mouth);
            case 9 , 10 , 11 -> System.out.printf("%d月是秋季\n",mouth);
            case 12 , 1 , 2 -> System.out.printf("%d月是冬季\n",mouth);
            default -> System.out.println("输入错误!");
        }
    }
}

在这里插入图片描述

3.编写一个程序,根据用户输入的月份和日期,输出该日期所在的星座。以下是一个简单的星座日期范围参考:
水瓶座(1月20日到2月18日)
双鱼座(2月19日到3月20日)
白羊座(3月21日到4月19日)
金牛座(4月20日到5月20日)
双子座(5月21日到6月20日)
巨蟹座(6月21日到7月22日)
狮子座(7月23日到8月22日)
处女座(8月23日到9月22日)
天秤座(9月23日到10月22日)
天蝎座(10月23日到11月21日)
射手座(11月22日到12月21日)
魔羯座(12月22日到1月19日)

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
package kfm;
import javax.lang.model.util.ElementScanner6;
import java.sql.SQLOutput;
import java.util.Scanner;
public class Text03 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入月份(1-12):");
        int month = in.nextInt();

        System.out.println("请输入日期(1-31):");
        int day = in.nextInt();

        String Text03 = getText03(month, day);
        System.out.println("输入的日期所对应的星座为:" + Text03);

    }

    public static String getText03(int month, int day) {

        if ((month == 1 && day >= 20 ) || (month == 2 && day <= 18)) {
            return "水瓶座";
        } else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) {
            return "双鱼座";
        } else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) {
            return "白羊座";
        } else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) {
            return "金牛座";
        } else if ((month == 5 && day >= 21) || (month == 6 && day <= 20)) {
            return "双子座";
        } else if ((month == 6 && day >= 21) || (month == 7 && day <= 22)) {
            return "巨蟹座";
        } else if ((month == 7 && day >= 22) || (month == 8 && day <= 22)) {
            return "狮子座";
        } else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) {
            return "处女座";
        } else if ((month == 9 && day >= 23) || (month == 10 && day <= 22)) {
            return "天秤座";
        } else if ((month == 10 && day >= 23) || (month == 11 && day <= 21)) {
            return "天蝎座";
        } else if ((month == 11 && day >= 22) || (month == 12 && day <= 21)) {
            return "射手座";
        } else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) {
            return "摩羯座";
        }else {
            return "输入数值有误,请重新输入!" ;
        }
    }
}

在这里插入图片描述

4.编写一个程序,根据员工的工龄来计算年终奖金。奖金计算规则如下:
工龄小于等于5年,奖金为工资的5%
工龄大于5年且小于等于10年,奖金为工资的10%
工龄大于10年,奖金为工资的15%
(工资和工龄输入)

/**
 * {class description}
 *
 * @author SWP
 * @version 1.0.0
 */
package kfm;
import java.util.Scanner;
public class Text04 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入工资:");
        int wages = in.nextInt();

        System.out.println("请输入工龄:");
        int Seniority = in.nextInt();

        double bonus;

        if (Seniority <= 5){
            bonus = wages * 0.05;
        }else if (Seniority >= 5 && Seniority <= 10){
            bonus = wages * 0.1;
        }else {
            bonus = wages * 0.15;
        }
        System.out.println("员工的年终奖金为:" + bonus);
    }
}

在这里插入图片描述

思考题:if 和 switch 各有什么特点,什么情况下用 if 更好?什么情况下 switch 更佳?两者如何选择?

if 语句的特点:
if 语句是一种条件分支语句,根据条件的布尔值进行分支选择。
可以使用多个独立的 if 语句来实现多个条件的判断。
支持任意复杂的条件表达式和逻辑运算。
可以附加 else if 和 else 分支,处理更复杂的条件情况。
适用于比较复杂的条件判断和灵活的逻辑处理。

switch 语句的特点:
switch 语句基于给定的表达式值,将不同的分支与常量或枚举值进行匹配。
可以在多个分支中选择执行的代码块。
分支的值必须是整型、字符型、字符串或枚举类型。
switch 语句具有更高的可读性和代码整洁性。
当存在多个固定的取值情况时,可以使用 switch 更简洁地进行处理。

如何选择 if 或 switch 取决于具体的情况:
如果条件需要进行范围判断或者涉及复杂的逻辑运算,可以选择使用 if。
如果条件是离散的、固定的取值情况,使用 switch 便于代码的可读性和维护性。
当判断的条件较少且明确时,switch 语句相对更简洁,但请注意不要过度使用多个 case 分支。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值