난 항상 본 적이 유사한 for
루프 : 나는 코드 같은 것을 본 적이 등등
for(int i=0; i<n; i++){}
for(;;){}
그리고 있지만 :
for (init; condition; increment)
같은 또 다른 방법으로 사용
, 나는 내 친구에게서 얻었습니다.
Arduino IDE에서 컴파일되므로이 특정 for
루프의 의미는 무엇입니까?
즉, 어떤 종류의 루프이며 어떻게 작동합니까?
난 항상 본 적이 유사한 for
루프 : 나는 코드 같은 것을 본 적이 등등
for(int i=0; i<n; i++){}
for(;;){}
그리고 있지만 :
for (init; condition; increment)
같은 또 다른 방법으로 사용
, 나는 내 친구에게서 얻었습니다.
Arduino IDE에서 컴파일되므로이 특정 for
루프의 의미는 무엇입니까?
즉, 어떤 종류의 루프이며 어떻게 작동합니까?
이 루프 :
button; // does nothing - should probably be `button = HIGH;` ?
while (button == HIGH) // break out of loop when button != HIGH
{
//do something here
button == digitalRead(12); // comparison - should probably be assignment ?
}
참고 :
for(button; button == HIGH; button == digitalRead(12))
가 동등 나는 전체 루프 버그가 의심 아마도 읽어야
for (button = HIGH; button == HIGH; button = digitalRead(12))
// do something here
"아마"아무것도하지 않습니까? 언제 그것이 무엇인가? – djechlin
죄송합니다 - 버튼이 매크로 또는 무언가일지도 모른다고 생각했지만 이제는 int 버튼으로 선언되었으므로 아무 것도하지 않습니다. –
'digitalRead()'는 부작용이 있거나 없을 수 있습니다. 아마 그럴거야. 그것은 * 가능성있는 * 여기, IMHO – wildplasser
을 첫째,의 해석하자 이 말 그대로. 루프를하는 중에 변환과 같은 :
button; // does nothing
while(button == HIGH) { // clear
// do stuff
button == digitalRead(12); // same as digitalRead(12);
}
이 코드 정말가 IDE 또는 컴파일러 경고를 많이 출발해야한다. 어쨌든 제 답변은 정확합니다, 그것이 문자 그대로 변환됩니다. button == digitalRead(12)
은 유효하지만 비교 결과에는 아무런 영향을 미치지 않습니다.
대부분 코드가 버그 일 가능성이 큽니다. 한 가설은 ==
이 =
이어야합니다. 루프에 대한
가 증가하지 않아도, 구문이 더'(run_once_at_start, conditions_to_check_every_loop, actions_to_perform_every_loop)에 대한처럼'또한 , 그것은 깨진 코드 =='부작용이없고 아무것도 수행되지 않습니다'의 있습니다. 나는 당신의 친구가'=' – GRAYgoose124
을 의미한다고 생각합니다. @ GRAYgoose124 나는 그가 컴파일하고 제대로 실행될 때'=='를 의미한다고 생각합니다. – BackSlash
물론, 컴파일되고 올바르게 실행되기 때문에 많은 논리적 오류가 발생합니다. 그래도 아무 것도하지 않겠지 만, 12 번 핀의 digitalRead 값을 버튼과 비교하고 아무 것도하지 않는 것입니다. 'button == digitalRead (12)'는 완전히 생략 될 수 있으며 같은 결과를 낳습니다. 사실, 컴파일러가 어쨌든 그것을 최적화했다. – GRAYgoose124