2014-11-10 3 views
-4

이것은 내가 아는 간단한 질문이지만 이것에 대해 혼란스러워합니다. 이런 출력을 얻으려고합니다.자바에서 그냥 출력 해요

CourseG, CourseF and CourseE are available 

하지만 내 결과는 이렇게됩니다.

CourseE is available 
CourseG, CourseF, CourseE are available 
CourseF and CourseE are available 

내 알고리즘은;

if(a == 1){ 
    System.out.println("CourseE is available"); 
} 
if(a ==1 && b == 1 && c == 1){ 
    System.out.println("CourseG, CourseF, CourseE are available"); 
} 
if(a == 1 && b == 1){ 
    System.out.println("CourseF and CourseE are available"); 
} 
else{ 
    System.out.println("no available Course"); 
} 

감사합니다.

답변

5

먼저 가장 큰 것을 확인한 다음 exif 문을 사용하십시오. 가장 큰 범위를

if(a ==1 && b == 1 && c == 1){ 
    System.out.println("CourseG, CourseF, CourseE are available"); 
} 
else if(a == 1 && b == 1){ 
    System.out.println("CourseF and CourseE are available"); 
} 
else if(a == 1){ 
    System.out.println("CourseE is available"); 
} 
else{ 
    System.out.println("no available Course"); 
} 

시작 제에 당신의 방법을 작동합니다.

+0

그게 전부입니다. 고마워. – Calaquessir

+0

도와 드릴 수있어서 다행입니다. – brso05

+0

@Calaquessir 코스 F 및/또는 G 코스 만 사용할 수 있습니다 (b 및/또는 c가 1 인 경우) –

1

예, 각 경우 독립적으로 다른 사람의 평가되기 때문에 (그리고, b와 c 1이다) 것을 얻을. 다른 행동을 원하면 if-else-if를 사용해야합니다.

0

if 문에는 마지막 시간을 제외하고 else가 없으므로 각 if 문은 이전 문과 독립적으로 테스트됩니다. 또한 일치하게 될 경우 인쇄 CourseG, CourseF, CourseE are available과 마지막 3 CourseF and CourseE are available 인쇄, 일치한다면

그러므로 a == 1 && b == 1 && c == 1 경우 첫 번째 문장이 제 2 CourseE is available을 인쇄 할 경우.

그 중 하나만 정확하게 인쇄하고 나머지는 중지하려면 다음과 같이해야합니다 (각 줄에 else if이 있음). 당신은 또한 광범위한 상태로 대부분의 규제 케이스에서 시작하여 조건 순서를 변경해야

주의 :

코드를 기반으로
if(a ==1 && b == 1 && c == 1){ 
    System.out.println("CourseG, CourseF, CourseE are available"); 
} else if(a ==1 && b == 1){ 
    System.out.println("CourseF and CourseE are available"); 
} else if(a == 1){ 
    System.out.println("CourseE is available"); 
} else{ 
    System.out.println("no available Course"); 
} 
+1

아니요. 코드의 논리가 깨졌습니다. 'else if'는 절대로 실행되지 않습니다. –

+0

@CoolGuy : 그 점에 감사드립니다. 나는 대답을 다시 업데이트 할 것이다. 귀하의 의견. –

+1

Nope. 뭔가 잘못되었습니다. 코드를주의 깊게 검사하고 수정하십시오. –

-1

**,이 시도 : ****

  `if(a == 1 && b != 1 && c != 1){ 
       System.out.println("CourseE is available"); 
      } 
      else if(a !=1 && b == 1 && c != 1){ 
       System.out.println("CourseF is available"); 
      } 
      else if(a !=1 && b != 1 && c == 1){ 
       System.out.println("CourseG is available"); 
      } 
      else if(a == 1 && b == 1 && c !=1){ 
       System.out.println("CourseF and CourseE are available"); 
      } 
      else if(a ==1 && b == 1 && c == 1){ 
       System.out.println("CourseE, CourseF, CourseG are available"); 
      } 
      else{ 
       System.out.println("no available Course"); 
      }` 

(동일한 로직을 따르는 다른 경우를 은폐해야합니다.)

관련 문제