m0_38077048 2020-07-09 09:48 采纳率: 0%
浏览 192

调用的函数的return和主函数switch语句中的break冲突吗?

代码的要求是:在控制台上输入两个数以及运算符(+-*/%),使用switch语句并用函数封装

代码如下:

import java.util.Scanner;

public class Work6{ 
    public static void main(String[] args){ 
        Scanner in = new Scanner(System.in);
        System.out.print("请输入第一个数字:");
        int num1 = in.nextInt();


        System.out.print("请输入第二个数字:");
        int num2 = in.nextInt();


        System.out.print("请输入运算符:");
        String symbol = in.next();

        int add = add(num1,num2);
        int decrease = decrease(num1 , num2);
        int multiply = multiply(num1 , num2);
        double division = division(num1 , num2);
        double remainder = remainder(num1 , num2);


        switch (symbol)
        {
        case "+":
            System.out.println(add);
                break;
        case "-":
            System.out.println(decrease);
                break;
        case "*":
            System.out.println(multiply);
                break;
        case "/":
            System.out.println(division);
                break;
        case "%":
            System.out.println(remainder);
                break;
        default:
            System.out.println("该算法不支持");
                break;
        }



    } 

    //定义函数,表示运算关系
    //加法函数
    public static int add(int x,int y){
        System.out.println(x + " + " + y + " = " + (x + y));
        return x + y ;
    }

    //减法函数
    public static int decrease(int x,int y){
        System.out.println(x + " - " + y + " = " + (x - y));
        return x - y;
    }

    //乘法函数
    public static int multiply(int x,int y){
        System.out.println(x + " * " + y + " = " + (x * y));
        return x * y;
    }

    //除法函数
    public static double division(double x,double y){
        System.out.println(x + " / " + y + " = " + (x / y));
        return x / y;
    }

    //求余函数
    public static double remainder(double x,double y){
        System.out.println(x + " % " + y + " = " + (x % y));
        return x % y;
    }
}

图片说明
输入两个数及运算符之后,发现所有的运算方法全都输出了,这里我只希望它输出对应运算符的语句,想知道是因为函数中的return和switch中的break冲突了吗?

  • 写回答

2条回答 默认 最新

  • 已、删除 2020-07-09 10:00
    关注

    图片说明
    是的冲突了, 你应该把调用方法步骤放在switch内。

    switch (symbol) {
                case "+":
                    int add = add(num1, num2);
                    System.out.println(add);
                    break;
                case "-":
                    int decrease = decrease(num1, num2);
                    System.out.println(decrease);
                    break;
                case "*":
                    int multiply = multiply(num1, num2);
                    System.out.println(multiply);
                    break;
                case "/":
                    double division = division(num1, num2);
                    System.out.println(division);
                    break;
                case "%":
                    double remainder = remainder(num1, num2);
                    System.out.println(remainder);
                    break;
                default:
                    System.out.println("该算法不支持");
                    break;
            }
    
    评论

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条