以下のプログラムは整数列を入力パラメータとし、ある処理をして結果を返すJavaのプログラム (メソッド) である。このテストデータとして、次の項目からパステストの一種である分岐網羅の基準を100%満たすものを選択せよ。なお、分岐網羅とはプログラムに対応するコントロールフローグラフの全アーク
(またはリンク) を網羅することである。
int check ( int[] data ) {
int sum = 0;
int i;
for (i = 0; data[i] > 0; i++) {
if (data[i] > 80) sum = sum + 3;
else {
if (data [i] > 50) sum = sum + 2;
else sum = sum + 1;
}
}
return sum;
}
@ (79, 50, 1, 0)
A (80, 60, 40, 20, 0)
B (100, 81, 80, 79, 51, 0)
C (100, 81, 50, 49, 0)
D (130, 80, 50, 0)
D
題意より、
sum = sum + 3;
sum = sum + 2;
sum = sum + 1;
のすべての処理を網羅する必要がある。
整数列が入力パラメータであるから
81以上:sum = sum + 3;
51以上、80以下:sum = sum + 2;
1以上 50以下:sum = sum + 1;
0の時:forループを抜け、return する。
すべての条件が揃っているのは、Dである。
@ 81以上の数字がない。
A 81以上の数字がない。
B 1以上、50以下の数字がない。
C 51以上、80以下の数字がない。
D 正しい。
W−21 | 目次 | W−23 |