2017-10-06 33 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メソッドは値を返しませんし、しかもその戻り値の型が無効です。 –

+0

プログラムがそのようにしかうまく動作しない値を返す必要はありません。 –

答えて

0

メインメソッドで値を返す必要はありません。それを宣言してリターンを取り除くと、コミッションを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

私はそれを使用し、メイン 『java.util.NoSuchElementException「スレッドの例外』エラー を得た:なしラインがretail.mainでjava.util.Scanner.nextLineで \t(Scanner.java:1540) \tが見つかりません(小売.java:11) " – user8730148

+0

このエラーは、このポストにimport文がないためです。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」スレッドで例外』私は、このエラー を与えた:java.util.Scanner.nextLineで \t(Scanner.java:1540) が見つかりませライン\t at Retail.main(Retail.java:14) " – user8730148

+0

あなたはretail.javaを削除してRetail.javaとして再保存する必要があります。 –

+0

ああ、それは今ありがとう – user8730148

関連する問題