2017-10-06 514 views
0

我是新来的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); 
    } 
} 
+0

您在返回从main方法的价值,主要方法没有返回值,而且它的返回类型为void。 –

+0

您不需要返回一个值,程序只能以这种方式正常工作。 –

回答

0

您不需要在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); 
}} 
+0

我使用的,并得到一个错误 “异常线程‘main’java.util.NoSuchElementException:没有找到行 \t在java.util.Scanner.nextLine(Scanner.java:1540) \t在retail.main(零售.java:11)“ – user8730148

+0

这个错误是因为这个帖子缺少导入语句import java.util.Scanner;上述类声明 –

0

您正在返回主要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); 

     } 

注: 此程序不需要返回值。你可以在主要方法中做你的生意。

0

修复的问题: 类名不是大写 佣金从未初始化 回报去除

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); 
    } 
} 
+0

我这样做,但它给了我这个错误主要‘java.util.NoSuchElementException “在线程异常’:没有找到行 \t在java.util.Scanner.nextLine(Scanner.java:1540) \t at Retail.main(Retail.java:14)“ – user8730148

+0

您将不得不删除您的retail.java并将其重新保存为Retail.java。 –

+0

啊好吧,现在有用,谢谢 – user8730148