エンジニアの転職お問い合わせ記事には広告を含む場合があります。【C言語】while(1)・while(0)の意味とループを抜ける方法2024年10月11日おゆ組み込み系プログラマとして5年働いていた元エンジニアです。得意言語はC言語とC++。本サイトでは学生および新人組み込み系プログラマに向けてプログラミング知識をわかりやすく解説しています。プログラムを読むんでいるとたまにwhile(1)、while(0)といった記述を見かけます。while(1)を使うと無限ループを作れます。while(1)でも同じです。while(0)を使うとwhile文内の処理を実行しないコードになります。記事の内容while(1)の意味(無限ループ)while文の無限ループから抜ける方法while(0)の意味while(1)の意味(無限ループ)while(1)は無限ループになります。while(1)でも同じです。以下で理由を解説します。while文内の処理が実行されるには条件式が成り立つ、つまりTrue(真)である必要があります。C言語において偽は0、真は0以外の数値を指します。(真偽値について詳しくはこちらの記事で解説しています。)以下の例ではi<3の値がiの値によって1(真)から0(偽)へ変化することがわかります。//2i<3の値を出力}実行結果(i<3)=1i=1i=2i=3(i<3)=0上のコードではi<3の値を出力しています。おゆi<3の値と聞くと不思議な感じがするかと思いますが、C言語ではこのような条件式を書くと条件式が成り立つかが判定され、成り立てば1(真)、成り立たなければ0(偽)に置き換えられます。1の位置ではi=0なので(i<3)=1(真)となります。よってwhile文内の処理が実行されます。3ループ目が終わるころにはi=3となっているのでi<3は偽となります。よってwhile文を抜け、2の位置で(i<3)=0が出力されます。while(1)は条件式が常に真になり、while文内の処理が無限に実行されます。while(1)でも同じ方法で無限ループから抜けられます。breakを使う以下のようにbreakを使えば無限ループから抜け出せます。printf("End");}実行結果i=1i=2i=3Endreturnを使う関数の中でwhile(1)と使っているのであれば、returnで抜けることもできます。printf("End");}実行結果i=1i=2i=3End実行後に気付いたらCtrl+Cプログラム実行後に無限ループになっていることに気付いたらターミナル(実行結果が出てくる場所)を選択した後、「Ctrl」を押しながら「C」を押せばプログラムを中断できます。while(0)の意味while(0)は条件式が常に偽なので、while文内の処理は実行されません。printf("End");}実行結果Endおゆif(0)は以下の記事で解説している理由でたまに使うのですが、while(0)は使ったことがありません。while(0)の必要性は感じられません。こんな疑問にお答えします。...続きを見るまとめwhile(1)は無限ループで、抜け出すにはbreakを使います。while(0)を使うとwhile文内の処理を実行しないコードになります。C言語で行き詰まったら...C言語・C++がわからない時に質問できるサイト・サービス5選C言語を独学で勉強しているけど内容がイマイチわからない。何がわからないのかもわからない。C++のエラーが解決できない。ググってもわからない。わかる人に解説してほしい。...続きを見るブログランキング参加中。クリックしてもらえると励みになります。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。関連記事C言語入門講座C言語・C++がわからない時に質問できるサイト・サービス5選C言語を独学で勉強しているけど内容がイマイチわからない。何がわからないのかもわからない。C++のエラーが解決できない。ググってもわからない。わかる人に解説してほしい。【C言語】break・continueの意味(for・while・if文中の使い方)break・continueはともに繰り返し処理中で使われる便利な機能です。配列は数字や文字列をひとまとめにして扱うことのできる便利な機能です。【C言語】変数のスコープとは?static・ローカル・グローバル変数の違いC言語やC++を勉強しているとたまに出てくる変数のスコープって何?難しそうだからわかりやすく解説してほしい。こんな疑問にお答えします。こんな疑問にお答えします。...【C言語】break・continueの意味(for・while・if文中の使い方)スタック領域・ヒープ領域・静的領域の仕組みと違いをわかりやすく解説おゆ組み込み系プログラマとして5年働いていた元エンジニアです。得意言語はC言語とC++。本サイトでは学生および新人組み込み系プログラマに向けてプログラミング知識をわかりやすく解説しています。