调用的函数的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冲突了吗?

图片说明
是的冲突了, 你应该把调用方法步骤放在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;
        }

你这全执行一遍,全输出不是很正常吗? 如果想只打印一个算式,把计算嵌入到对应的case里面

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);