大学の同期のコード こんな回り道をしなくても……
//落第しているかの判定 bool failFlg = false; //もしも一つでも30点以下の科目があればfailFlgをtrueに var fail = scoreList.Where(a => a.Score < 30).Count() > 0; //判定 if (fail == true) { failFlg = true; } //failFlgによって分岐処理 switch (failFlg) { case true: Console.WriteLine("You failed"); failWorks(); break; ; case false: Console.WriteLine("You passed"); passWorks(); break; default: break; }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
Console.WriteLine(scoreList.Any(a => a.Score < 30) ? "You failed" : "You passed");
でワンライナーですねー
ちなみにこれだと落第基準が30点 未満 になるので、コメントどおり 以下 にするなら <
ではなく <=
です
投稿者のコードが冗長なのは同意だとして、 #2 のワンライナーもこれはこれで過剰に縮めすぎな印象はある。
人が読んで保守することに重きを置くなら、もうっちょと意味単位に分割してもよい。
failWorks()とpassWorks()があるけど、それでも判定は
if(scoreList.Any(a => a.Score < 30))
で十分だし
はやっぱり💩
コメント投稿には、twitter認証が必要です。
Twitter認証
switch が無駄なんじゃなくて、全部が全部無駄なんじゃないかと、、、ほぼワンライナーで書けると思うぞ ^^;