2014-09-12 3 views
-3

안녕하세요, 저는 연산자를 테스트하고 변수를 선언하는 데 약간의 도움이 필요한 코드를 작성하려고합니다. 내 코드에서 if 문 아래에 입력 한 숫자가 무엇인지에 따라 특정 답이 true 또는 false가되도록 선언하고 "기호를 찾을 수 없습니다"오류가 계속 발생합니다. 여기 내 코드는String 변수를 String 변수에 어떻게 연결합니까?

import java.util.Scanner; 

public class TestOperators 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 

    //prompt the user to enter an integer 
     System.out.print("Enter an integer: "); 
     int num = input.nextInt(); 

     String t = new String("True"); 
     String f = new String("False"); 

     //calculate 
     if ((num % 5 == 0) && (num % 6 == 0)) 
     answer = t; 
     else if ((num % 5 == 0) && (num % 6 != 0) || (num % 5 != 0) && (num % 6 == 0)) 
     answer = t; 
     else if ((num % 5 == 0) || (num % 6 == 0)) 
     answer = t; 
     else 
     answer = f; 

    //print results 
     System.out.println("Is " + num + " divisible by 5 and 6? " + answer); 
     System.out.println("Is " + num + " divisible by 5 or 6?" + answer); 
     System.out.print("Is " + num + " divisible by 5 or 6, but not both?" + answer); 

    } 
} 

이 프로그램은 그 자리에서 변수 "대답"을 선언 할 수 없다는 것을 알려줍니다. 나는 변수 "f"와 "t"변수를 묶어서 변수 변수에 묶으려는 시도를하고 있습니다. 도와주세요!

답변

2

answer을 신고 한 적이 없습니다. 방법의 시작 부분에이 줄을 추가하십시오 :

String answer; 
+1

그리고 "False"(초기화해야 할 필요가 있음)로 초기화 된 경우 마지막 'else' –

5

당신은 변수 모두를 선언하지 입니다. 방금 을 할당하려고합니다. 할당을 시도하기 전에 코드에

String answer; 

을 추가하면됩니다.

또한 거의 new String(String)에 전화하기를 원하지 않으며 코드를 간소화 할 수 있습니다. 당신은 (단지 ||로 예를 들면) 결과를 결정하고 다음 문자열로 결과를 변환 더 나을 것 : 결과는 당신이 를 원하는, 그 살펴보면

boolean result = ((num % 5 == 0) && (num % 6 == 0)) || 
       ((num % 5 == 0) && (num % 6 != 0) || (num % 5 != 0) && (num % 6 == 0)) || 
       ((num % 5 == 0) || (num % 6 == 0)); 
String answer = result ? "True" : "False"; 

실제로는 다음과 같이 간단 할 것 같다 :

숫자 5 또는 6이

귀하의 코드는 단지 표현 중 하나에 의해 나눌 수없는 경우 당신은 모두 원래의 코드에서 답변을 내 마지막 코드로 "거짓"얻을 수

String answer = (num % 5 == 0 || num % 6 == 0) ? "True" : "False"; 

유일한 방법은 매우 복잡한 방식으로 ...

+1

천재 솔루션이 필요하지 않습니다! 그러나 이것은 초보자에게는 조금 복잡하다고 생각합니다. – Baby

+0

@TheQuickBrownFox : 최종 결과를보십시오. 질문에 원래 코드보다 훨씬 * 더 간단합니다. 그렇지 않습니까? –

+1

네, 맞습니다! 내가 여기에서 의미하는 _ 복잡화 된 부분은 OP가이 해결책을 얻는 것입니다 : D – Baby

관련 문제