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になりましたが、ループは最初の条件がfalseの場合でも継続しますので、あなたの第二の条件s.charAt(i)!=' 'が、これは本当になったとします。したがって、while loopは、文字列の最後に達したときに終了します。

+0

問題は、条件が決して満たされないことです。 –

+0

@gre_gor、true私は自分の答えを修正しました。実際に私の決して実現する意味は、条件の理由が満たされないということでした:-)とにかくありがとう。 –

関連する問題