第4講 ブロック崩しその2(ボールを動かして壁にぶつかると反射するようにするまで)
第3話 繰り返し処理
芸のなかった
#include<stdio.h>
int main()
{
int a;
a = 0;
a = a + 1;
a = a + 2;
a = a + 2;
a = a + 3;
a = a + 4;
a = a + 5;
a = a + 6;
a = a + 7;
a = a + 8;
a = a + 9;
a = a + 10;
printf("1+2+3+4+5+6+7+8+9+10 = %d\n", a);
return 0;
}
コピペ用添付ファイル
は、繰り返し処理を使えばとてもシンプルにできます。
#include<stdio.h>
int main()
{
int a,i;
a = 0;
for (i = 1; i <= 10; i++) {
a = a + i;
}
printf("1+2+3+4+5+6+7+8+9+10 = %d\n", a);
return 0;
}
コピペ用添付ファイル
しかも、10を100000に変更すれば、
1+2+3+・・・+100000
の変身できます。
たった1カ所の変更で可能なわけです。
int a,i;
で整数専用の箱(整数型変数)を2つ用意しました。
aという名前の箱とiという名前の箱です。
a = 0;
最初の値を入れることを初期化といいます。
元の状態に戻すことを意味しますと前に説明しましたが、
最初の値を入れることも初期化というのです。
実は変数の宣言と初期化は同時に行うこともできます。
int a = 0,i;
こうするときには、
a = 0;
の行はいらなくなります。
さて、繰り返し処理とは、
for (i = 1; i <= 10; i++) {
a = a + i;
}
の部分です。
i++はi = i + 1の簡略表現です。
C言語にはこのような簡略表現がいくつも用意されています。
i = i + 2→i += 2
i = 2 * i→i *= 2
i = i / 5→i /= 5
などです。
*と/はそれぞれ×と÷です。
キーボードをよく見るとわかりますが、
×も÷もないですよね。
ですから、*と/で代用するのです。
これはどのプログラム言語でも共通です。
for (i = 1; i <= 10; i++) {
a = a + i;
}
の意味は、iを1から始めて1つずつ大きくしていって10になるまで、
{}で挟まれている命令を繰り返しなさいという意味です。
iを2つずつ大きくしたいなら、
for (i = 1; i <= 10; i += 2) {
a = a + i;
}
となります。
これは、1+3+5+7+9を計算させるプログラムです。
i <= 10は10以下という意味ですから、最後が9になるのです。
for (i = 1; i <= 10; i += 2) {
a = a + i;
}
をfor文といいます。
繰り返し処理には、for文以外にいくつか種類があります。
そのうちの1つがwhile文と呼ばれるものです。
#include<stdio.h>
int main()
{
int a,i;
a = 0;
for (i = 1; i <= 10; i++) {
a = a + i;
}
printf("1+2+3+4+5+6+7+8+9+10 = %d\n", a);
return 0;
}
をwhile文で書き直すと、
#include<stdio.h>
int main()
{
int a = 0,i = 1;
while (i <= 10) {
a = a + i;
i++ ;
}
printf("1+2+3+4+5+6+7+8+9+10 = %d\n", a);
return 0;
}
コピペ用添付ファイル
となります。
while文は
while(条件式){
・・・
・・・
・・・
}
という形をしていて、
条件式が満たされている間は{}中を繰り返しなさいという命令です。
今の場合はi <= 10ですからiが10以下の時は繰り返しなさいということになるのです。
whileは「〜の間」という意味です。
結果的に先ほどのfor文でやったことと同じになることはおわかりですね。
while文を使う際に気をつけなければならないことは、
i++ ;
等を忘れると永久ループ(同じことを永久に繰り返すこと)になってしまうということです。
ループは回るという意味ですが、この場合には繰り返しを意味しています。
iは1のままですから、永久に10以下ですから。
ですから、うっかり
int a = 0,i = 1;
while (i > 0) {
a = a + i;
i++ ;
}
としても永久ループになってしまいます。
条件式がi > 0となっており、iは1以上ですから、永久に条件式は満たされています。
ですが、この間違った条件式でも
int a = 0,i = 1;
while (i > 0) {
a = a + i;
i++ ;
if( i > 10)break;
}
if( i > 10)break;
の1行を入れれば正しい
結果を導き出せます。
if( i > 10)break;
はif文と言われるもので、
if(***)〜;
()の中が正しければ、〜を実行しなさいという命令文です。
breakは強制的にwhile文を抜け出すときに使います。
第2話へ 第4話へ
初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ