2017-10-06 509 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