画像(logo)

HOME/[C言語 入門]小学生でもわかるC言語 目次/十一日目 繰り返し「while」命令!

広告

[C言語 入門 小学生でもわかるC言語]
十一日目 繰り返し「while」命令!

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

くり返し「while」命令

今回はもう一つのくり返し命令「while」についてみていきましょう!

自由な「while」命令

/*十一日目 プログラム1*/
#include <stdio.h>

int main(){
	int suji = 0;

	while(suji < 5){
		printf("おはよう\n");
		suji++;
	}
	return 0;
}

■実行結果■

画像(cb_11_1)

■説明■

前回と同じ「おはよう」を5回表示するプログラムになります!

「while」命令の場合は

while(suji < 5)

と最初に条件を決めるだけで「for」命令の時にあった「初期化」と「進み方」は別の場所に書くという違いがあります。

でも書き方が違うだけでやってる事は一緒な気がしますよね!

気がしますが!「while」命令をあなどってはいけません。何気に良く使われます。というか「for」命令より使われている感じがしない事もないです。

そんなワケでよく見かける「while」命令のカタチを見てみましょう!

無限ループ系

/*十一日目 プログラム2*/
#include <stdio.h>

int main(){

	int suji = 0;

	while(1){
		if(suji == 100){
			printf("suji = %d\n",suji);
			printf("変数「suji」が100になりました!\n");
		}
		if(suji == 200)break;
		suji++;
	}
	printf("suji = %d\n",suji);
	printf("変数「suji」が200になったので終了します!\n");

	return 0;
}

■実行結果■

画像(cb_11_2)

■説明■

while(1)

これはよく見かけます。「if」命令の時に学んだ条件が「1」・・・合っている状態です。なのでずっとくり返す無限ループになります。

ここで登場するのが「switch」命令の時に見かけた

break;

「break」命令です!{}カッコを抜ける命令ですね!

そうです。これを書くと一番近いくり返しループから途中で脱出できるのです!

「while(1)」で無限ループ→条件が達成された時に「break」命令で脱出というやり方ですね!

「while」命令だけではなく「for」命令でも同じように途中でくり返しを脱出できます。

広告

無限ループ系その2

/*十一日目 プログラム3*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(){
	int suji;
	
	while(1){
		printf("■パスワード入力時の注意■\n");
		printf("数字以外を入力すると\n");
		printf("プログラムが暴走する危険性があります!\n");
		printf("必ず数字1ケタだけを入力してください!\n\n");
		printf("数字1ケタのパスワードを入力してください>");
		(void)scanf("%d",&suji);
		if(suji == 1)break;
		else{
			printf("パスワードが違います!");
			printf("やり直してください\n");
			continue;
		}
	}
	printf("パスワードを受付ました!\n");

	return 0;
}

■実行結果■

画像(cb_11_3)

■説明■

さきほどと同じく条件が達成されるまでの無限ループ系ですね!

数字1ケタのパスワードを入力してもらってパスワードが合うまで無限ループします。

プログラム中にもありますが数字以外を入れるとプログラムが暴走して無限ループに入る可能性があるので気をつけてください!

そして注目すべきは

新登場!

continue;

これは「break」命令の仲間で{}カッコの先頭に戻る命令になります。

この「continue」命令を使えばパスワードの入力のやり直しをさせる事ができますね!

ぼっち系

/*十一日目 プログラム4*/
#include <stdio.h>

int main(){
	int suji = 10;

	while(suji--){
		printf("%d ",suji);
	}

	printf("\n");
	printf("変数「suji」が0になったので終了します!\n");

	return 0;
}

■実行結果■

画像(cb_11_4)

■説明■

変数「suji」だけ一人さみしく条件式の中でがんばっているように見えるのでぼっち系と名づけてみました。

while(suji--);

式のカタチではないので、はじめはとまどうかと思います。

難しく考えずそのまま「-1」インクリメントされ続けて変数「suji」が「0」になれば条件が合わなくなるので、ループを抜けるというワケです。

「suji」の表示が「9」からになっている所にも注意です!

ここであれ?と思われた方いると思います。

「while(1)」のように条件が「1」の時は実行されるって学んだような気がするけれども今回みたいに他の数字でも実行されるのか!?と

そうなんです。

このへんがややこしいのですがもうそのまま覚えるしかないです。

「while」などの条件式は「0」以外は実行されます。

これが次に学ぶ配列(はいれつ)というテクニックとともによく使われるので覚えておきましょう!

「do~while」命令

最後に「while」命令の仲間である「do~while」命令をご紹介します。

これは「while」の部分の条件が合っても、合わなくても必ず一度は中身の命令が実行されるという命令になります。

プログラムで確認してみましょう!

/*十一日目 プログラム5*/
#include <stdio.h>

int main(){
	int suji = 100;

	do{

		printf("必ず一回は実行されます!\n");

	}while(suji < 50);

	return 0;
}

■実行結果■

画像(cb_11_5)

■説明■

使い方は最初に

do

と書いて{}カッコ内に実行する内容を書きます。そしてお尻に

while(suji < 50);

条件を書きます。最初に変数「suji」には「100」が入ったので条件が合わなくても最初の一回が実行されているのがわかりますね!

「do~while」命令はいろいろなプログラムを組まないとどこで使うのかイマイチわかりづらいと思います。

今は軽く心にとめておきましょう!

次回

十二日目 配列(はいれつ)!

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)