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

을 제거 초기화하지 대문자 클래스 이름이 아닙니다. –

+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

내가 그렇게 사용하고 오류 주 "java.util.NoSuchElementException "스레드에서 예외 "을 가지고 : 없음 라인이 java.util.Scanner.nextLine (Scanner.java:1540) retail.main에서 \t (소매 \t 발견 .java : 11) " – user8730148

+0

이 오류는이 게시물에 import 문이 없습니다. import java.util.Scanner; 클래스 선언 –

0

main 메소드 내부에 표시 오류가 표시됩니다. 이 프로그램 값을 반환 할 필요가 없습니다 : 당신이 값을 반환하려는 경우, 당신은이 같은

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 (Scanner.java:1540)에서 \t 발견 \t at Retail.main (Retail.java:14) " – user8730148

+0

retail.java를 삭제하고 이것을 Retail.java로 다시 저장해야합니다. –

+0

아 좋아 이제 감사합니다. – user8730148