第7講 社員(子分)

第8話 無限ループから抜け出す


無限ループ解消策
#include<iostream>
using namespace std;
void f();
void g();
short cn;

int main(){
  i=0;
  f();
}

void f(){
  if(cn>=10)return;
  cout<<"私は子分f()である"<<endl;
  cn++;
  g();
}

void g(){
  if(cn>=10)return;
  cout<<"私は子分g()である"<<endl;
  cn++;
  f();
}
実行画面
c++
10回で止まっています。

グローバル変数iを用意して、
cnが10を数えたら終わるようにしてあります。
returnは帰れの命令です。
どこに帰るかというと、
命令を下した人の所に帰ります。
if(cn>=10)return;
となっていますので、
cnが10以上なら何もしないで帰れです。

実は、結構複雑な動きをして終了するのですが、
現時点では触れないで起きましょう。
社員(子分)の自己再帰的命令の講で、
その複雑な動きについて解説します。
社員の自己再帰的命令とは、
簡単に言うと、
社員が自分に仕事を命じることです。
?????
ですね。
自分に仕事を命じる?って、どういうこと?
この疑問は、第9講で解消される予定になっています。

さて、今まで扱ってきた社員はvoid型社員のみでした。
つまり、仕事を命じた人に空の報告をする社員のみでしたが、
次は内容のある結果を報告する社員について学ぶことにしましょう。

例えば、
社員f()に1から10までの和を求めさせ、
社員g()には1から10までの積を求めさせ、
それぞれその結果を報告させるプログラムを考えてみましょう。


第7話へ 第9話へ

a

初心者のためのjava 入門 基礎から応用まで
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 入門 C++ 入門 基礎から応用まで第3部
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
VC++入門
VBA入門
専門用語なしのVBA入門
VB入門
初心者のためのEclipseによるJava入門