このwait関数は単体で動作するものではなく、別の処理から引数sと引数conを指定して呼び出されるもののはずです。
処理の前後関係や変数の説明が足りないと、推測に頼った回答となってしまいます。
以下、はずしていたらごめんなさい。
記載いただいたコードから、
・引数sは文字列
・引数conはRecieveData()メソッドを持つクラス
・引数conの内容は記載外の処理により随時に変化し、con.RecieveData()は実行した時点での
conの内容(文字列)を返す
・wait関数ではcon.RecieveData()から返される文字列を変数rに連結していき、
引数sで指定された文字列が出現するまでこれを繰り返す
ということが(推測も込みで)読み取れます。
つまり「引数sに指定した文字がcon.RecieveData()の結果に出現するまで待機する処理」だと思います。
これがもし「"s"の文字が出力されるまで待機という処理」であるのなら、wait関数の呼び出し元の処理では
wait関数の引数sに固定的に文字列"s"を指定して呼び出しているのだと思います。
//wait関数の呼出し
wait("s",con);
おそらく実際に行いたいことは「"s"か"s2"の文字が出力されるまで待機」したいのではなく、takitoさんが提示されているように「引数s、引数s2と2種類の文字列を指定して、どちらかに一致するまで待機」したいのではないでしょうか?
なぜなら、文字列"s2"には文字列"s"が含まれているため、"s2"が出現した場合もIndexOf("s")で検出できているはずだからです。
kanon962さんはこのコードをどこまで理解できているでしょうか?
改修を行う前に、ベースとなるソースを正しく理解することが近道のような気がします。
がんばってください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/26 12:55