2012-08-05 2 views
0

나는 liftoff에 카운트 다운하지만 for 루프 대신 while 루프를 사용하는 프로그램을 작성하려고합니다.Art & Science of Java 제 4 장, 연습 문제

for 루프 코드와 동일한 기본 원칙을 사용하고 있지만 지금까지 무한 루프를 작성하는 데 성공했습니다.

import acm.program.*; 



public class CountDownWhile extends ConsoleProgram { 


    public void run() { 
     int t = START; 
     while (t >= 0); { 
      println(t); 
      t = t--; 
      } 
     println("Liftoff!"); 
     } 

    private static final int START = 10; 

    } 

답변

1

첫 번째 문제는 while 루프 이후에 ;입니다. ; ...

public void run() { 
    int t = START; 
    while (t >= 0); { /// <------ Problem 1. Correct: while(t>=0) 
     println(t); 
     t = t--;  /// <------ Problem 2. Correct: t--; 
     } 
    println("Liftoff!"); 
    } 

제거 시도 t의 값이 변경되지 않고 남아있는 상기 제 문제

t=t--; 

이다.

4

코드에 두 개의 오류가 있습니다. 실제로 거기에 아무것도 while 루프를 의미하기 때문에 그리고 그것은 당신이 당신이 줄 끝에서 세미콜론을 추가하지 않아야 무한 루프를

1.

while (t >= 0); 

을 받고있는 이유는있다.

2.

t = t--; 

이 구문에 대한 자세한 배울 수있는이 질문에 확인할 수 있습니다 짧은에서 Is there a difference between x++ and ++x in java?

t--의 값이 너무 t = t-- 용량은 t의 값을 변경하지, 아직 10입니다 .

루프는 다음과 같아야합니다

while (t >= 0) { 
    println(t); 
    t--; 
} 
println("Liftoff!"); 
관련 문제