配列の境界をチェックする関数を作成しました。2 番目のソリューションが最初のソリューションと同じタスクを実行しないのはなぜですか? これは優先順位の問題ですか、それとも三項の不適切な使用ですか?
回避策 #1:
bool check_bounds(double* score, int size)
{
bool result=false;
for(int i=0; i<size; i++)
{
if(score[i] < 0.0 || score[i] > 100.0)
{
result=true;
}
}
return result;
}
// usage
if(check_bounds(score, size) { i--; }
回避策 #2:
bool check_bounds(double* score, int size)
{
bool is_valid;
for(int i=0; i<size; i++)
{
is_valid = (score[i] < 0.0 || score[i] > 100.0) ? true : false;
}
return is_valid;
}