2015-01-09 5 views
-5

"int 예 = Integer.parseInt (알 수없는 소스) 내 계산기에서 문제를 일으키고있다. 이클립스에서 꽤 새로 워서 코드 수정에 대한 제안은 훌륭 할 것이다."int yes = Integer.parseInt (sc.nextLine());"

import java.util.Scanner; 

public class Main { 
    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     System.out.println("Enter your first number"); 
     int nr1 = Integer.parseInt(sc.nextLine()); 
     System.out.println("Enter your second number"); 
     int nr2 = Integer.parseInt(sc.nextLine()); 
     System.out.println("Enter your sign (+ , - , /, *)"); 
     int yes = Integer.parseInt(sc.nextLine()); 
     int ans =0; 
     int j = 0; 
     int reset =j; 

     java.lang.String anvin = sc.nextLine(); 

     if(anvin.equalsIgnoreCase("+")) { 
      ans = nr1 + nr2; 
     } 
     else if(anvin.equalsIgnoreCase("-")) { 
      ans = nr1 - nr2; 
     } 
     else if(anvin.equalsIgnoreCase("*")) { 
      ans = nr1 * nr2; 
     } 
     else if(anvin.equalsIgnoreCase("/")) { 
      ans = nr1/nr2; 
      System.out.println(ans); 
     } 
     if(anvin.equalsIgnoreCase("yes")) { 
      return; 
     } 
    } 
} 
+0

그 문제가 무엇인가? –

+0

출력 결과를 보면 세 번째 줄은 * 기호 *라고 생각하십니까? '+, -, /, *'정수들이 – blgt

+0

@MindPeace 있습니다 지금은하지 않습니다 내가 입력 할 때 질문의 제목에 그래서 ... –

답변

1

숫자를 입력 할 때이 줄 중 하나를 바꾸어보십시오.

String anvin = sc.nextLine(); 

int anvinNumbers = sc.nextInt(); //for example 

으로 그것은 텍스트 밤은 당신의 구문 분석 작업 만 잘하면 솔루션입니다 왜 대답하지 않을 수 있습니다.

리팩토링 코드

import java.util.Scanner; 

    public class Main 
    { 
    public static void main(String[] args) 
    { 
    Scanner sc = new Scanner(System.in); //scanner object created 
    int ans = 0; 

    //Inputs 
    System.out.println("Enter your first number"); 
    int nr1 = sc.nextInt(); 
    System.out.println("Enter your second number"); 
    int nr2 = sc.nextInt(); 
    System.out.println("Enter your sign (+ , - , /, *)"); 
    String anvin = sc.nextLine(); 

    if(anvin.equalsIgnoreCase("+")) { 
     ans = nr1 + nr2; 
    } 
    else if(anvin.equalsIgnoreCase("-")) { 
     ans = nr1 - nr2; 
    } 
    else if(anvin.equalsIgnoreCase("*")) { 
     ans = nr1 * nr2; 
    } 
    else if(anvin.equalsIgnoreCase("/")) { 
     ans = nr1/nr2; 
    } 

    System.out.println(ans); 

    } 
} 

} 
+0

그 코드로 "Int anvinNumbers = sc.nextInt();"오류가 발생했습니다. 및 "java.lang.String anvin = sc.nextLine();" " \t 지능이 유형에 Main.main (Main.java:9)에서 \t anvin \t 중복 로컬 변수를 해결할 수없는 : 해결되지 않은 컴파일 문제 상위를"나는 "스레드에서 예외"주요 있어요 내가 그것을 달렸을 때 –

+0

이것은 괜찮 았지만 더 잘 사용할 수 있습니다 더 나은 문자를 사용하여 문자열에 반대하는 경우에만 +, - 기호 등 –

+0

@ theatguy 가장 최근 편집 있었습니까? 나는 내 머리에 그것을하고있는 많은 것을 엉망으로 만들었다. 하하. 아픈 당신을 다시 봐 –