Satoshi Takezawa

Results 1 issues of Satoshi Takezawa

## 内容 Scratchのrepeat部品について、リピート回数の評価方法がScratchとC++コードで異なるため、期待する実行結果にならないことがあります。 - Scratch: repeat実行前に一度だけ評価する - C++コード: ループ中、毎回評価する その結果、「条件式で使用した変数をループ内で変更する操作をする」と、ループの実行回数がScrachとC++で異なります。 ## 再現方法 targetStr="aaaaa"とし、ループ内でcurrentStrを"a"から"aaaaa"まで一文字ずつ増やしていき、targetStrとcurrentStrが同じ場合に"Yes"を出力するプログラムをScrachで作ります。具体的には下記のような処理になります。 ループ回数の計算に`length of currentStr`を使っている点が今回の問題と関係します。 - 上記のScrachファイル(.sb3): [ScracherTest.sb3.txt](https://github.com/user-attachments/files/17789241/ScracherTest.sb3.txt) - 生成されるC++コード: [prog.cpp.txt](https://github.com/user-attachments/files/17789254/prog.cpp.txt) 実行すると、Scratchでは"Yes"が出力されますが、生成されたCのソースファイルでは"No"が出力されます。 ## 期待する動作 生成されるC++コードにおいても、Scratchと同じ評価方法にする。 具体的には、repeatについては、C++のforループの前にループ回数を決定するようなコードを出力する。