第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;
}
コピペ用添付ファイル
009
しかも、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行を入れれば正しい
009
結果を導き出せます。
    if( i > 10)break;
はif文と言われるもので、
if(***)〜;
()の中が正しければ、〜を実行しなさいという命令文です。
breakは強制的にwhile文を抜け出すときに使います。


第2話へ  第4話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ