第5講 関数の学習
第9話 プログラミングの宿痾=無限ループの回避
宿痾=無限ループの回避

e

解答例

#include<iostream>
using namespace std;
void f();
void g();
char c; //cはカウンタ
void main(){
   c=0; //cはカウンタ
   f();
}
void f(){
   cout<<"gさんお仕事お願いします。"<<endl;
   c++; //cはカウンタ
   if(c<10)g();
}
void g(){
   cout<<"fさんお仕事お願いします。"<<endl;
   c++; //cはカウンタ
   if(c<10)f();
}

10回でぴったりやめるには、if(c<=10)f(); なのかif(c<10)f();
かは迷うところですが、
両方やってみるが、私の処方箋です。
ものを数えるというのは、
案外難しいものです。

今回はカウンタ(数を数える変数)をグローバル変数にしましたが、
引数を用意すれば、
グローバル変数は使う必要がありません。
グローバル変数を用いないプログラムを考えて下さい。
答えは30行下。























グローバル変数を利用しないプログラム例
#include<iostream>
using namespace std;
void f(char c);
void g(char c);
void main(){
   f(0);
}
void f(char c){
   cout<<"gさんお仕事お願いします。"<<endl;
   if(c+1<10)g(c+1);
}
void g(char c){
   cout<<"fさんお仕事お願いします。"<<endl;
   if(c+1<10)f(c+1);
}

今回もif(c+1<10)f(c+1); かif(c<10)f(c+1);
なのか迷いますよね。
試してみる!
最大の解決法ですよ。

ところで、
#include<iostream>
using namespace std;
void f(char c);
void g(char c);
void main(){
   f(0);
}
void f(char c){
   cout<<"gさんお仕事お願いします。"<<endl;
   if(c+1<10)
f(c+1);
}
void g(char c){
   cout<<"fさんお仕事お願いします。"<<endl;
   if(c+1<10)f(c+1);
}
とうっかりタイピングミスをすると、どうなるでしょうか。


第8話へ 第10話へ

a

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