2010-07-20 9 views
0

나는 이와 비슷한 루프를 가지고있다. 내가하고 싶은 무엇for 루프 while 루프 + 추가 조건

int total1, total2; 
for (total1 = fsize(myfile);;) { 
    total2 = fsize(myfile); 
    ... 
    ... 
    total1 = total2; 
} 

루프를 종료하기 전에 여분의 상태에 대한 while 루프이 변환하고 확인하는 것입니다.

나는 같은 것을 할 싶습니다 :

for(total1 = fsize(myfile); (input = getch()) != 'Q';) { 
    ... 
} 
+6

이 있습니까 여기서 질문 하나? – bstpierre

+3

바로 시작하십시오. '((input = getch())! = 'Q')'를 괄호로 묶어야합니다. – AShelly

+0

실제로 어떤 이유로 루프에 들어 가지 않습니다 ... while 루프를 올바르게 수행하고 있는지 확실하지 않습니다. –

답변

-1

당신은이 사용할 수 연산자 = as 서명 == 비교입니다

+0

잠시 대신 "for"를 항상 * 사용할 수 있습니다. "while"을 "for"로 변경하고 조건 바로 전과 후에 세미콜론을 넣으십시오. –

+0

@ T.E.D .: 물론. 나는 OP가 찾고 있던 대답을 추측하려했다. –

0

아마도 당신이

while((total1 == fsize(myfile)) && ((input = getch()) != 'Q')) { 
    total2 = fsize(myfile); 
    ... 
    total1 = total2; 
} 

마음 그 의미 :

while((total1 = fsize(myfile)) && input = getch() != 'Q') { 
    total2 = fsize(myfile); 
    ... 
    total1 = total2; 
} 

감사

+0

아마도 두 번째'='를'=='로 바꾸지 않을 것을 의미했다. – IVlad

+0

그냥 고쳐서 고쳤다. – JohnFx

+0

그는 훨씬 더 많은 문맥없이 그가 무엇을 의미하는지 정확히 말하기가 거의 불가능합니다. –

0

for 루프의 '초기화'부분 total1=fsize(myfile)은 while 루프에서 테스트 한 조건의 일부가되었습니다. 그게 당신이 의도 한거야 ??

는 for 루프에서

total1 = fsize(myfile); 

while((input = getch()) != 'Q') { 
    total2 = fsize(myfile); 
    ... 
    total1 = total2; 
} 
0

이니셜 라이저는 한 번만 수행 ... 당신은 확실히 당신이 원하지 않았다이다.

for (total1 = fsize(myfile);;) { 

while 상당

total1 = fsize(myfile); 
while (1) { 

당신은 조건 input = getch() != 'Q'을 추가하는 경우에 대한 설명입니다. 할당 (=)의 비교 (!=)보다 낮은 우선 순위가

주, 그래서 inputgetch()을 할당하고 문자는 assignement 주위에 괄호를 필요 Q 아니라는 것을 확인 :

total1 = fsize(myfile); 
while ((input = getch()) != 'Q') {