与えられた短いJava関数であり、そのための制御フローグラフを作成するのが好きですが、それでいいのかわかりませんか?すでに持っている変数など、いくつかのものを残しているので関数と一緒に作成されました(int[] A, boolean[] boo
)。
boolean func(int[] A, boolean[] boo){
boolean res;
int n, leng;
leng = A.length;
n = 0;
res = true;
while(n < leng){
if(A[n] <= 0 && !boo[n]){
res = false;
}
n++;
}
return res;
}
そのように大丈夫ですか?テストではすぐに書くので、そのようにします:/
制御フローグラフは通常、ノードごとに1つのステートメントで記述されませんが、コードを複数のステートメントを組み合わせる基本ブロックに分割します。基本ブロックはジャンプターゲットで始まり、別のブロックへのジャンプで終わります。最後のジャンプは条件付きの場合があります。
あなたの制御フローグラフは、以下を除いて、一般的に正しいです
n++
_ノードには複数の出力ジャンプがありますが、条件付きステートメントではありません。 _n++
_から_return res
_への直接ジャンプがあってはなりません。代わりに、while (...)
へのジャンプのみが必要です。