몇 가지 오래된 회사 코드를 살펴보면 다음과 같은 for 루프가 나타났습니다.for 루프는 어떻게 작동합니까 (특히 (;;))?
for (;;) {
//Some stuff
}
Google을 시도했지만 답변을 찾을 수 없습니다. 프로그래밍 수업에서 잠들었나요? 아니면 이상한 루프입니까?
몇 가지 오래된 회사 코드를 살펴보면 다음과 같은 for 루프가 나타났습니다.for 루프는 어떻게 작동합니까 (특히 (;;))?
for (;;) {
//Some stuff
}
Google을 시도했지만 답변을 찾을 수 없습니다. 프로그래밍 수업에서 잠들었나요? 아니면 이상한 루프입니까?
자바에있는 for
루프는 다음과 같은 구조를 가지고 - 당신이 볼 수 있듯이, 여기에 네 개의 문이있다
for (initialization statement; condition check; update)
loop body;
을 -
true
으로 평가됩니다.처음에는 루프가 처음 입력 될 때 초기화 문이 한 번 실행됩니다. 그런 다음 조건부 검사가 실행되어 참으로 평가되는지 확인합니다. 그럴 경우 루프 본문이 실행되고, 그렇지 않으면 루프 실행이 완료됩니다. 그 후 Update 문이 실행됩니다. 그런 다음 조건부 검사가 다시 실행되고 true로 평가되면 루프 본문이 다시 실행되고 업데이트 문이 실행 된 다음 다시 조건부 검사가 실행됩니다. 그러면 그림이 나타납니다.
이제 for(; ;)
구문에 대해 알려주세요. 초기화 문이 없으므로 아무 것도 실행되지 않습니다. 조건부 검사 문도 비어 있으므로 true로 평가됩니다. 그런 다음 루프 본문이 실행됩니다.그런 다음 update 문이 비어 있으므로 아무 것도 실행되지 않습니다. 그런 다음 다시 조건부 검사를 수행하여 다시 true로 평가 한 다음이 전체 프로세스가 다시 반복됩니다.
기본적으로 이것은 초기화 문이없는 무한 루프이며 조건부 검사는 항상 true로 평가되고 업데이트 문은 없습니다. 이것은 -
while(true)
{
.....
}
과 비슷합니다. 이것은 java에서 많이 사용되는 루프 구조입니다.
이와 같이 무한 루프를 사용할 때 대부분의 경우 루프가 무기한 실행될 수 없으므로 브레이크 조건에주의하는 것이 중요합니다. 이러한 종류의 루프를 벗어나려면 break
문을 사용할 수 있습니다. 다음 구조는 -
if(some_condition_is_true)
break; // This will cause execution to break out of its nearest loop
또는
if(some_condition_is_false)
break;
이것은 동일하다.
이 루프에는 보호 기능이없고 while (true) 루프의 역할을합니다. 휴식 시간까지 무한 루프됩니다.
무한 루프입니다. initialization, condition 및 increment 문은 모두 선택 사항이므로 아무 것도 사용하지 않으면 휴식 시간에 도달하거나 다른 구조가 상호 작용하지 않는 한 항상 반복됩니다.
나는 자바에 대해 확실 해요하지만
는 this question 방법을 설명에서 닷넷 귀하의 빈for
과
while (true)
정확히 같은 일에 컴파일됩니다. 자바가 잘한다면 놀라지 않을 것이다.
무한 루프입니다. 직관적이지 않기 때문에 정확히 코딩하지 않아도 실제로 컴파일되거나 런타임 오류가 발생하지 않습니다. while(true) { /* code */ }
으로 다시 작성하면 무한 루프를 표시하는 데 훨씬 더 읽기 쉽습니다.
코드 예에서 닫는 대괄호를 잊어 버린 경우 D –
내 코드가 인라인 주석으로 인해 작성된 닫는 대괄호를 가져 오지 않는다고 당연 하겠지만 한 줄로 모두 가져 가고 싶었습니다. –
이들 모두 무한 루프이다
for(;;) {
// endlessly
}
while(true) {
// endlessly
}
do {
// endlessly
} while(true);
/* while 루프
5 달러
1 초콜릿 = 1 달러
while my money is greater than 1 bucks
select chocolate
pay 1 bucks to the shopkeeper
money = money - 1
end
집에 와서 내 돈 = 0 달러 */
#include<stdio.h>
int main(){
int money = 5;
while(money >= 1){
printf("inside the shopk and selecting chocolate\n");
printf("after selecting chocolate paying 1 bucks\n");
money = money - 1 ;
printf("my remaining moeny = %d\n", money);
printf("\n\n");
}
printf("dont have money cant go inside the shop, money = %d", money);
return 0;
}
무한 돈
while(codition){ // condition will always true ....infinite loop
statement(s)
}
이해 이 비디오를 확인할 수 있기 때문에 캔트 동안 가게에 가서 https://www.youtube.com/watch?v=eqDv2wxDMJ8&t=25s
Google에 알려졌지만 무한 루프를 사용하여, 나는 한 번 이상에 걸쳐 (사실) 잠시 유죄입니다. –
그들이 유용하다고 생각하는 순간을 느낀다. – user489041
최소한 (사실) 코드를 읽는 사람이 그것을 이해할 가능성이 더 높다고 생각하면 ... – PeterT