break文とcontinue文

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

breakとcontinueの例を見るために、前のページ(while文でのループ・繰り返し - C言語とC++入門勉強ルーム)で、例に出したフィボナッチ数列を少し書き換えてみます。

break文

break文を用いると、ループ処理から、任意の条件成立時に抜け出し、繰り返しを終了できます。

#include <iostream>
int prev_num;	// 一つ前の数字
int cur_num;	// 現在の数字
int next_num;	// 次の数字
int main() {
	prev_num = 1;
	cur_num = 1;
	std::cout << cur_num << "\n";
	while (true) {
		std::cout << cur_num << "\n";
		next_num = prev_num + cur_num;
		prev_num = cur_num;
		cur_num = next_num;
		if (cur_num > 100) {
			break;
		}
	}
	return(0);
}

今回は、「while (true)」となっている点が要注意です。
whileの条件は、常に真(true)なので、break文でループを脱出しない限り、無限ループとなってしまいます。
「if (cur_num > 100)」で、数列の数字が100より大きくなったら、breakを実行し、ループを抜け出し終了する命令を与えています。
実行結果。

1
1
2
3
5
8
13
21
34
55
89

continue文

今度は、continue文です。
continueは、任意の条件成立時に、ループ中の残りの処理をスキップして、ループの先頭に戻ります。

フィボナッチ数列のうち、偶数のフィボナッチ数をスキップ(continue)し、奇数のフィボナッチ数のみを表示するプログラムを書いてみます。
フィボナッチ数が100より大きくなったら、breakで終了させます。

#include <iostream>
int prev_num;	// 一つ前の数字
int cur_num;	// 現在の数字
int next_num;	// 次の数字
int main() {
	prev_num = 1;
	cur_num = 1;
	std::cout << cur_num << "\n";
	std::cout << cur_num << "\n";
	while (true) {
		next_num = prev_num + cur_num;
		prev_num = cur_num;
		cur_num = next_num;
		// フィボナッチ数の偶数をスキップ
		if (cur_num % 2 == 0) {
			continue;
		}
		// 現在の数字が100より大きくなったらループ終了
		if (cur_num > 100) {
			break;
		}
		std::cout << cur_num << "\n";
	}
	return(0);
}

実行結果。

1
1
3
5
13
21
55
89

今度は、フィボナッチ数列のうち奇数の数字のみが表示されました。


日時: 2008年06月03日 12:52
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/196

この記事にトラックバックされる方は、参照先が分かるようにするために、「break文とcontinue文」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - C言語とC++勉強ルーム