不兼容的类型:意外的返回值



我是Java的新手,正在尝试返回要在最后一行打印出来的佣金值。 但是我不断收到不兼容的类型: 意外的返回值错误。

  import java.util.Scanner;
    public class retail {
    public static void main (String[] args){
    char code;
    double commission;
    String enumber;
    double retail_price=0;
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter employee number: ");
    enumber= scan.nextLine();
    System.out.println("Enter retail price: ");
    retail_price= scan.nextDouble();
    System.out.println("Enter code:");
    code=scan.next().charAt(0);
    if (code == 'A'){ commission = (retail_price/100)*6;}
    else if (code == 'a') {commission = (retail_price/100)*6;}
    else if (code == 'B') {commission = (retail_price/100)*8;}
    else if (code == 'b') {commission = (retail_price/100)*8;}
    else if (code == 'C') {commission = (retail_price/100)*10;}
    else if (code == 'c') {commission = (retail_price/100)*10;}
    else{System.out.println("Invalid code");}
    return commission;
    System.out.println("Employee number: "+enumber);
    System.out.println("Retail price: "+retail_price);
    System.out.println("Commission: "+commission);
    }
}

不需要在 main 方法中返回值。只需在声明佣金时将佣金启动为 0 并删除退货即可。

double commission=0;
String enumber;
double retail_price=0;
Scanner scan = new Scanner(System.in);
System.out.println("Enter employee number: ");
enumber= scan.nextLine();
System.out.println("Enter retail price: ");
retail_price= scan.nextDouble();
System.out.println("Enter code:");
code=scan.next().charAt(0);
if (code == 'A'){ commission = (retail_price/100)*6;}
else if (code == 'a') {commission = (retail_price/100)*6;}
else if (code == 'B') {commission = (retail_price/100)*8;}
else if (code == 'b') {commission = (retail_price/100)*8;}
else if (code == 'C') {commission = (retail_price/100)*10;}
else if (code == 'c') {commission = (retail_price/100)*10;}
else{System.out.println("Invalid code");}
System.out.println("Employee number: "+enumber);
System.out.println("Retail price: "+retail_price);
System.out.println("Commission: "+commission);
}}

您将返回 main 内部 method.so 其显示错误。 如果要返回值,则应像这样使用,

private static double setValue(char code,double commission,double retail_price){
        if (code == 'A'){ commission = (retail_price/100)*6;}
        else if (code == 'a') {commission = (retail_price/100)*6;}
        else if (code == 'B') {commission = (retail_price/100)*8;}
        else if (code == 'b') {commission = (retail_price/100)*8;}
        else if (code == 'C') {commission = (retail_price/100)*10;}
        else if (code == 'c') {commission = (retail_price/100)*10;}
        else{System.out.println("Invalid code");}
        return commission;
    }

        public static void main(String ...args){
            char code;
            double commission = 0;
            String enumber;
            double retail_price=0;
            Scanner scan = new Scanner(System.in);
            System.out.println("Enter employee number: ");
            enumber= scan.nextLine();
            System.out.println("Enter retail price: ");
            retail_price= scan.nextDouble();
            System.out.println("Enter code:");
            code=scan.next().charAt(0);
            commission = setValue(code, commission, retail_price);
            System.out.println("Employee number: "+enumber);
            System.out.println("Retail price: "+retail_price);
            System.out.println("Commission: "+commission);
        }

注意: 此程序无需返回值。您可以在主方法中开展业务。

问题已修复:类名未大写佣金从未初始化退货已移除

import java.util.Scanner;
// Classes should allways be capitalized
public class Retail
{
    public static void main (String[] args)
    {
        char code;
        double commission = 0;
        String enumber;
        double retail_price=0;
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter employee number: ");
        enumber= scan.nextLine();
        System.out.println("Enter retail price: ");
        retail_price= scan.nextDouble();
        // added user guidance of whats expected
        System.out.println("Enter code: A,B,C");
        code=scan.next().charAt(0);
        if (code == 'A'){ commission = (retail_price/100)*6;}
        else if (code == 'a') {commission = (retail_price/100)*6;}
        else if (code == 'B') {commission = (retail_price/100)*8;}
        else if (code == 'b') {commission = (retail_price/100)*8;}
        else if (code == 'C') {commission = (retail_price/100)*10;}
        else if (code == 'c') {commission = (retail_price/100)*10;}
        else{System.out.println("Invalid code");}
        System.out.println("Employee number: "+enumber);
        System.out.println("Retail price: "+retail_price);
        System.out.println("Commission: "+commission);
    }
}

最新更新