マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第3章 for文(繰り返し処理)
第3話 for文の考え方
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
using namespace std;//coutを使うときに必要なお呪い
#include<conio.h>//while(!_kbhit());を使うためのお呪い
#include<string> //文字列変数を使えるようにするために組み込む
#include <iomanip> //setprecisionを使えるように組み込む
int 足し算();//1 + 2 + ・・・ + 100 などを計算する関数
int main() {//私は社長だ。
cout << "さぁ、探検・冒険の始まりだ!" << endl;
while (!_kbhit());//待機させるための命令
return(0);//int main()終わるためのお呪い
}
int 足し算() {
//1 + 2 + ・・・ + 100 などを計算する関数
return(0);//何かを返さないとエラーしますのでとりあえず0を返していますが、後に変更されます。
}
実行画面

(さぁ、探検・冒険の始まりだ!)
第2章第7話で 1 + 2 + ・・・ + 10 のコードとして
int 合計計算社員() {//ぼくの任務は「1 + 2 + ・・・ + 10」の合計を計算して社長に報告することです。
int 合計; 合計 = 0;//和の合計は0から出発
合計 = 合計 + 1;//0に1を加える
合計 = 合計 + 2;//1に2を加える
合計 = 合計 + 3;//3に3を加える
合計 = 合計 + 4;//6に4を加える
合計 = 合計 + 5;//10に5を加える
合計 = 合計 + 6;//15に6を加える
合計 = 合計 + 7;//21に7を加える
合計 = 合計 + 8;//28に8を加える
合計 = 合計 + 9;//36に9を加える
合計 = 合計 + 10;//45に10を加える
return(合計);//合計値を社長に報告
}
とセンスのかけらもないコードを紹介しましたが、
for文ならもっとエレガントに書くことができます。
int 合計計算社員() {//ぼくの任務は「1 + 2 + ・・・ + 10」の合計を計算して社長に報告することです。
int 合計; 合計 = 0;//和の合計は0から出発
for(int i = 1; i < 11; i++){
合計 += i;
}
return(合計);//合計値を社長に報告
}
と書くことができます。
i ++ とは i = i + 1 の省略形であり、
合計 += i;とは 合計 = 合計 + i; の省略形です。
C言語やC++はこのような省略形を欠けることが特徴の一つとなっています。
for(int i = 1; i < 11; i ++){
合計 += i;
}
は簡略形を使わなければ、
for(int i = 1; i < 11; i = i + 1){
合計 = 合計 + i;
}
ということになります。
この文は i を 1 から 10 まで変化させながら
合計 = 合計 + i;
を繰り返しなさい、という意味になります。
慣れてくれば省略形を使ってもよいと思いますが、
初心者は、なるべき省略形を使わずに書くようにした方がよいと思います。
それでは、
int main() {//私は社長だ。
cout << "さぁ、探検・冒険の始まりだ!" << endl;
while (!_kbhit());//待機させるための命令
return(0);//int main()終わるためのお呪い
}
int 足し算() {
//1 + 2 + ・・・ + 100 などを計算する関数
return(0);//何かを返さないとエラーしますのでとりあえず0を返していますが、後に変更されます。
}
を改良して、1 + 2 + ・・・ + 100 の合計を計算して社長に返してください。
実行画面

(さぁ、探検・冒険の始まりだ!
1 + 2 + ・・・ + 100 = 5050)
すでにお気づきの方もいらっしゃると思いますが、
社員とか報告が説明から消えています。
もう、皆さんはそういった比喩を使わないでも、
理解できる力がついているはずですから、
そういった超初心者用の説明は、
もう卒業しましょう。
答え合わせは次話で!
第3章第2話へ 第3章第4話
本講義トップへ