2013-03-27 4 views
2

저는 숙제를 다하고 있습니다. 프로그램의 중요한 루프가 문제가되고 있습니다. 내 선생님은 카운터 제어 변수에 while 루프를 사용하면 포인트를 벗을 것이라고 알려주므로이 권리를 얻으 려합니다.Java for 루프가 실행되지 않습니다 ...?

는 여기에 내가 일을하고 싶은거야, 그리고 내가 내 마음에 느끼는 것은 작동합니다 :

for (int check = 0; check == value; check++) { 
    int octal = getOctal(); 
    int decimal = convertOctal(octal); 
    System.out.printf("%d:%d", octal, decimal); 
} 

그러나,이 루프가 실행되지 않습니다. while 루프를 사용하여 작업을 시도했지만 완벽하게 작동했습니다!

public static void main (String args[]) 
{ 
    int value = getCount(); 

    while (value < 0) 
    { 
     System.out.print("\nYou must enter a positive number"); 
     value = getCount(); 
    } 

    if (value == 0) 
    { 
     System.out.print("\n\nNo numbers to convert.\n\n"); 
    } 
    else 
    { 
     int check = 0; 
     while (check < value) 
     { 
      int octal = getOctal(); 
      int decimal = convertOctal(octal); 
      System.out.printf("%d:%d", octal, decimal); 
      check++; 
     } 
    } 
} 

예, 이것이 8 진수로 진수 변환기입니다 : 여기

int check = 0; 
while (check < value) 
{ 
    int octal = getOctal(); 
    int decimal = convertOctal(octal); 
    System.out.printf("%d:%d", octal, decimal); 
    check++; 
} 

의 주요 방법의 나머지 부분입니다. 나는 처음부터 변환기 방법을 직접 작성했고, 그것을 우스꽝스럽게 자랑스럽게 생각한다.

편집 : 내 질문은 무엇입니까? EDIT 부분 deux : 오해를 해결하는 데 도움을 주신 모든 분들께 감사드립니다. 메서드 문서로 넘어가십시오!

+1

'while'과 'for'루프는 다른 조건을 확인하고 있습니다. for 루프는'for (<초기화>; <계속하기위한 조건>, <각 반복 후에 취할 동작>) '과 같이 선언됩니다. –

+0

감사합니다. 나는 Java에서 루프를 많이 사용하지 않으므로 표현의 문구가 잘못 표시되었습니다. (나는 Python을 놓친다 :() – thephfactor

+0

아무런 답이 없다. 도움이되었다고 생각하면 대답을 받아 들인다./ –

답변

12
for (int check = 0; check == value; check++) 

for (int check = 0; check == value; check++)의 시도.

for (int check = 0; check < value; check++) 
+0

오 감사합니다.하지만 이해가 안 돼요 ... 중간은 종료 표현입니다, 맞죠? 루프를 실행하는 조건이 아니세요? – thephfactor

+1

종료가 거짓 일 때, 루프가 중지됩니다. –

+0

nvm ... Java에서 루프를 많이 사용하지 않는다고 말할 수 있듯이 – thephfactor

3

check == value 경우 실행됩니다 for (int check = 0; check <= value; check++) 대신

+0

... 그게 효과가있다. 왜 작동 했는가? – thephfactor

+0

미안하지만 나는 설명을하기에는 너무 게을 렀다. 왜 작동하는지에 대한 @Jean Waghetti의 대답 – gefei

0

는 것과 같은 효과를 얻으려면 : :에 수정

int check = 0; 
while (check < value) { 
    // something 
} 

당신의 for은 다음과 같아야합니다

for (int check = 0; check < value; check++) { 
    // something 
} 
1

the Oracle website에서 (내 강조) :

for 문은 다음과 같은 간단한 방법을 제공합니다. 값의 범위를 반복합니다. 프로그래머는 종종 특정 조건이 이 만족 될 때까지 반복적으로 반복하는 방식 인 방식으로 인해이를 "for 루프"라고 부릅니다. 같이 표현 될 수 명령문의 일반적인 형태는 다음과

for (initialization; termination; increment) { 
statement(s) 
} 

것을 명심 문에 대한 버전을 사용 :

초기화 식 루프를 초기화하고; 루프가 시작될 때 이 한번 실행됩니다.

종료 표현식이 false로 평가되면 루프가 종료됩니다.

증가 표현식은 루프를 통해 이후에 호출됩니다. 이 표현식이 값을 증가 또는 감소시키는 것은 완전히 허용 가능합니다.

+0

그래, 그냥 읽어라. 고마워. – thephfactor

관련 문제