2017-11-29 3 views
0

어떤 이유로 while 루프는 문자열 끝에 도달했을 때만 종료됩니다.While 루프가 깨지지 않을 때

while (s.charAt(i) != '_' || s.charAt(i) != ' ') { 
    Serial.println(s.charAt(i)); 
    Next_Char += s.charAt(i); 
    i ++; 
    Serial.println(Next_Char); 
    Serial.println(i); 
    if (i == s.length()) { 
    break; 
    } 
} 
+0

귀하의 의견은 무엇입니까? – Billa

답변

1

while (s.charAt(i) != '_' || s.charAt(i) != ' ') 조건이 항상 충족됩니다. 나는 그것이 예를 들어 while (s.charAt(i) != '_' && s.charAt(i) != ' ')

해야한다고 생각, s.charAt(i)='_' 여기에 첫 번째 조건이 false를하지만 루프가 첫 번째 조건이 거짓 인 경우에도 계속 귀하의 두 번째 조건 s.charAt(i)!=' '이 사실이되었다 가정합니다. 따라서 while loop은 문자열의 끝에 도달했을 때만 끝납니다.

+0

문제는 조건이 항상 충족되지 않는다는 것입니다. –

+0

@gre_gor, true 답변을 수정했습니다. 실제로 나의 결코 성취 한 의미는 상태를위한 이유가 성취하기 위하여려고하고 있지 않다이다 :-) 어쨌든. –

관련 문제