2014-02-24 5 views
1

프롬프트 : Boolean 표현식 (x/2) * 2 == x을 사용하여 정수 x가 짝수 또는 홀수인지 테스트 할 수 있습니다. 이 표현식을 true로 만드는 정수와 홀수 정수는 표현식을 false로 만듭니다. for 루프를 사용하여 다섯 번 반복합니다. 각 반복에서 사용자에게 정수를 요청하십시오. 사용자가 입력하는 각 정수 및 짝수 또는 홀수를 인쇄하십시오. 사용자가 입력하는 짝수 및 홀수 정수의 수를 파악하고 완료되면 "완료"를 인쇄하여 사용자가 다른 정수를 입력하지 않도록하십시오. 마지막으로, 입력 된 짝수 및 홀수 정수의 수를 출력하십시오.Java의 부울

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.println("Enter an integer."); 
    int x = in.nextInt(); 
    boolean even; 
    for (int i = 0; i == 5; i++) { 
     if ((x/2) * 2 == x) { 
      even = true; 
      System.out.println(x + " is even."); 
     } 
     if ((x/2) * 2 != x) { 
      even = false; 
      System.out.println(x + " is odd."); 
     } 
    } 
} 

이 솔루션을 찾고 아니, 내가해야 할 일에 관해서는 단지 도움 : 여기

내가 지금까지 가지고있는 코드입니다. 전체 부울 문제에 대해 혼란스러워합니다.

+1

어떤 문제가 있습니까? 예상대로 짝수/홀수를 인쇄 할 수 있습니까? – Kakarot

+1

지정시 대문자와 소문자를 구분하십시오. 부울은 true 및 false 값이있는 기본 유형이며 부울은 부울 유형을 래핑하는 래퍼 클래스입니다. 부울은 참 또는 거짓을 포함하기위한 것이지만 클래스이며 프리미티브가 아닙니다. – mikemil

답변

-1

짝수 및 홀수 값을 찾을 수있는 간단한 방법은 2 수를 분할하고 나머지 확인하는 것입니다 :

if(x % 2 == 0) // remainder is 0 when divided by 2 
{ 
//even num 
} 
else 
{ 
//odd num 
} 
1

글쎄, 당신의 루프가 발생하지 않습니다를; i == 5은 항상 루프에 도달 할 때마다 false가됩니다. 당신이되고 루프 문을 변경할 수 있습니다 무엇

은 다음과 같습니다

for (int i = 0; i <= 5; i++) { 
    // code 
} 

또한, 방법 덕분에 자바 가지를 평가, 변수 even가 초기화되지 않았을 수 있습니다. 값으로 인스턴스화해야합니다.

boolean even = false; 

마지막으로 숫자가 짝수인지를 확인하는 가장 직접적인 방법은 모듈러스 연산자를 사용하는 것입니다. 그것이 2로 나눌 수 있다면 그것은 짝수입니다. 그렇지 않으면 이상합니다. 할당에서 요구 사항 누락 당신 있습니다

if (x % 2 == 0) { 
    // even, do logic 
} else { 
    // odd, do logic 
} 

은 - 즉, 능력은 홀수와 짝수의 단위로 계산합니다,하지만 나는 독자에게 연습으로 있음을 둡니다.

+0

'(x/2) * 2 == x' 표현은 항상 true로 평가되지는 않습니다. 변수'x'는 정수입니다. 게다가, 당신이 "운동으로 남긴"부분이 질문의 요점이었습니다. –

+0

나는 그것이 항상'x == x'로 줄어들지 않을 것이라고 수학적으로 보는 데 어려움을 겪고 있습니다. 왜냐하면 내가 직접 손으로 작업 할 때, 그리고 몇 가지 CAS 시스템 (Wolfram Alpha 포함)에 던지기 때문에 내가 얻는 것이기 때문입니다. – Makoto

+0

왜 그것을 시도해 보시고 왜 정수가 유일한 이유인지 직접 확인해보십시오. –

0

누락 된 부분은 얼마나 많은 홀수가 발생했는지 추적합니다. 이 경우 두 개의 별도 int 변수가 필요하며 주 루프 전에 선언해야합니다.

int numEvens = 0; 
int numOdds = 0; 

그런 다음 입력 된 숫자가 홀수인지 또는 홀수인지를 결정하는 지점에서이 숫자 중 하나를 증가시킵니다.

마지막으로 프로그램이 끝나면 메시지에서 둘 다 인쇄 할 수 있습니다.

1

이것은 숙제와 같습니다.

'부울도'사용되지 않는 것 같아서 선언하거나 사용하지 말 것을 제안합니다. 짝수 또는 홀수 인 경우 x = x % 2를 사용하여 숫자를 얻으십시오. 그것도 경우가 홀수 x는 1 %가이 코드는 숙제의 요구 사항에 대한 해답이 될 수 있어야 MOD

public static void main(String[] args) { 
Scanner in = new Scanner(System.in); 
int x; 
int even = 0; // keep tracks the number of even 
int odd = 0; // keep tracks the number of odd 
for (int i = 0; i < 5; i++) { 
    System.out.println("Enter an integer."); 
    x = in.nextInt(); 
    if (x % 2 == 0) { 
     even++; 
     System.out.println(x + " is even."); 
    } 
    if (x % 2 == 1) { 
     odd++; 
     System.out.println(x + " is odd."); 
    } 
} 
System.out.println("Done"); 
System.out.println("Evens: " + even "\nOdds: " + odd); 
} 

에 해당해야하는 경우 X는 0이어야한다. in.nextInt()는 사용자에게 5 번 요청해야하므로 for 루프 안에 있어야합니다.뿐만 아니라 루프는 <이어야합니다. 0, 1, 2, 3, 4에서 5 번 반복하므로