我是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);
}
}