私はArduinoでプログラミングしていて、私のプログラムにはwhileループがたくさんあります。 Arduinoが文字を受け取ったとき、それは文字を受け取ったときにあったループからいくつかの計算を行い、中断しなければなりません。私はあなたに単純な例を与える(i、jは0に設定されていると推定):あなたは、私がもし文章内のコードの同じ部分を使用し、両方のケースでそれを見ることができます外部メソッドでループを中断する
while (i < 256)
{
// some calculations #1
i++;
if (Serial.available() > 0)
{
setStringOne = "string one"
setStringTwo = "string two"
setStringThree = "string three"
setStringFour = "string four"
break;
}
}
while (j < 256)
{
// some calculations #2
j++;
if (Serial.available() > 0)
{
setStringOne = "string one"
setStringTwo = "string two"
setStringThree = "string three"
setStringFour = "string four"
break;
}
}
。このようなことを書くことができるようにしたい。
while (i < 256)
{
// some calculations #1
i++;
if (Serial.available() > 0)
checkAndBreak();
}
while (j < 256)
{
// some calculations #2
j++;
if (Serial.available() > 0)
checkAndBreak();
}
void checkAndBreak()
{
if (Serial.available() > 0)
{
setStringOne = "string one"
setStringTwo = "string two"
setStringThree = "string three"
setStringFour = "string four"
break;
}
}
外部メソッドを使用してループを中断する。
"ループやスイッチ内ではないbreak文"というエラーが表示されます。これは、どのループが壊れているかわからないためですが、これらの行に何かを加えることが可能かどうか疑問に思っていました。
ありがとうございます!
あなたは 'checkAndBreak'マクロまたは例外や' longjmp'を使用することができます。 – melpomene
ループ条件を 'while(j <256 && Serial.available()<= 0)'に変更すると、ブレークを取り除くことができます – user3147395
ああ、私はそれについても考えていません。ありがとう。 – orglce