2017-02-21 13 views
-9

N(入力)の値に依存しない私のコードの出力はなぜですか?条件が一致していれば=と==条件付きである場合

+6

なぜあなたは怒っていますか?あなたはCAPID LOCK KEYをACCIDENTで押したのですか? – StoryTeller

+1

'if(i = 5)'は '5'を' i'に指定していますので、それは非の打ち所がなくループの外にブレークしているためです。 –

+1

比較オペレータ '=='イープルペアのように見える。私がなぜそれを知っているかを確信していない、私の考えを越えることが必要だった。 –

答えて

3

=は実際には値が設定されているため、常に等しくなることはないため、常に真となります。 ==を使用して、等価性をテストします。

11

=演算子は、右辺の式に左辺値(場合によってはi)の値を設定してから、変数の新しい値を返します。つまり、i=5はiを5に設定し、5を返します。これは常に5 != 0として真です。したがって、プログラムは、最初の数字が印刷された後すぐに終了します。これは1です。

ちょうどあなたがそれを聞いていなかった場合には、= OPERATORは右手側の式に(あなたのケースで、I)LVALUEの値を設定し、変数の新しい値を返します。これは、I=5を5に設定し、5を返します。これは常に5 != 0と同じです。最初の番号が印刷された後、すぐにプログラムを終了します。1です。

+0

彼の問題は、Cは大文字と小文字を区別しているということでしょうか? –

+0

OPが叫んでいても、答えはOPの貧弱なプレゼンテーションをエコーする必要はありません。冗長な大文字の部分を取り戻して削除しないことを提案します。 – chux

2

==は、両方の値が等しいかどうかをチェックします。 =が割り当てとして機能します。したがって、 i=5は常にtrueになり、ループはbreakになります。

+2

話す、聞こえない。 –

関連する問題