2011-04-30 5 views
0

do while 문이 있는데 두 조건이 충족 될 때 루프 처리를 원합니다. 어떤 이유로 든 allUp이 true 일 때마다 루프가 끝납니다.Do While 문 - 두 개의 인수

public void loop(){ 
    System.out.println(toString()); 
    do{ 
     turn(); 
     System.out.println(toString()); 
    while(allUp == false && end==false); 

    } 

} 
+0

코드를 컴파일조차되지 않습니다 게시한다. 스택 오버플로에 복사 할 때 너무 많이 잘라 냈습니까? –

+0

다른 사람이 설명한 것처럼 코드가 잘못되어있는 것 외에는 예상되는 동작입니다. && 연산자는 양측의식이 참일 때 참을 산출합니다. allUp == true 인 경우 더 이상 적용되지 않습니다. (아니면 내가 여기에 빠져있어?) –

답변

6

이 :

while(allUp == false && end==false); 

} 

가 잘못 보이는

} while(allUp == false && end==false); 
+0

@ 그렉 - 질문이 오타가 아니라고 가정하고. Java에서 * do * 블록이 있다고 생각하지 않으며 블록에 while 문이 없으면 컴파일하지 않습니다. 나는 당신의 원래 대답이 자리 잡았다 고 생각합니다. – tvanfosson

0

해야한다. 잠시 동안은 중괄호 밖으로 와야합니다.

public void loop(){ 
System.out.println(toString()); 
do{ 
    turn(); 
    System.out.println(toString()); 

} while(allUp == false && end==false); 


} 
0

다른 답변에서 언급했듯이 while 문은 중괄호 외부에 있어야합니다. Java 프로그래밍을 처음 시작하는 분이라면이 항목의 Java Tutorials - While Loops을 읽어 볼 수 있습니다.

+0

환호, 내가 봐야 할 것입니다 – ART

2

allUp이 참, allUp == false거짓 그리고 당신은 (두 조건 중 하나 거짓을 ...) 루프를 종료합니다. tvanfosson 제안대로,

while(allUp == false || end==false); 

수 또는해야

while (!(allUp && end)) 
+0

+1 이것은 자리입니다. 나는 do {} 내부가 심하게 형식화 된 코드라고 생각합니다. – Kal

+1

둘 다 조건이 충족되지 않은 상태에서 IMO가 연속성의 가장 명확한 표현이기 때문에 실제로는 while (! allUp ||! end) - 또는 while (! (allUp && end))을 선호합니다. . DeMorgan의 법을 사랑하지 마십시오. – tvanfosson

+0

@ tvanfosson - 감사합니다. DeMorgan 내가 생각했던 정확한 것입니다 :) – MByD

0

장소 같은 당신의 할 일 조항의 닫는 중괄호 외부 while 문 : 여기

do { 
    ... 
} while(...); 

, 당신은 확인된다 while 문 내부의 조건은 조건이 true 일 때 다시 반복됩니다. 거짓이면 루프를 종료합니다. 대신

:

do{ 
    turn(); 
    System.out.println(toString()); 
while(allUp == false && end==false); 

} 

는이 작업을 수행 :

do{ 
    turn(); 
    System.out.println(toString()); 
} while(allUp == false && end==false); 
관련 문제