上一節(jié)我們學習查找,是把符合條件的數(shù)據(jù)打印出來。有的時候我們不想打印,只想知道有沒有符合條件的數(shù)據(jù),該怎么做呢?下面的例子查找一組人名,如果人名中包含“諾貝爾”,就打印“有諾貝爾”,如果沒有,就打印“木有木有”:
通過源代碼可以看到,數(shù)組的第二個元素就是要查找的“諾貝爾”,運行結果是這樣的:
這段代碼有一個邏輯錯誤,事實上,數(shù)組中只要有一個“諾貝爾”就可以認定“有諾貝爾”,但必須所有的名字都不是“諾貝爾”,才能認定“木有木有”。
或者這么說:一組數(shù)據(jù)中只要有一個符合條件,就可以認為“有符合條件的數(shù)據(jù)”;但只有一組數(shù)據(jù)中每一個都不符合條件,才能認為“沒有符合條件的數(shù)據(jù)”——一個相等即為"有",全都不等才是"無"。
那么,到底應當怎樣判斷有無呢?請看下面的代碼:
變量 hasNbr 起到了關鍵作用:記錄篩選結果。它的初始值為 false ,表示沒有,如果循環(huán)中找到了相等的數(shù)據(jù),再修改 hasNbr 的值為 true ,表示有。循環(huán)結束后,只要看看變量 hasNbr 是 true 還是 false ,就知道循環(huán)中是否修改過。運行結果如下(有諾貝爾):
刪去數(shù)組中的“諾貝爾”,再次運行程序:
右邊代碼檢查了一組考試分數(shù),看有沒有考試不及格的,請仔細閱讀代碼,了解程序邏輯,然后在第 18 行(如果需要可以寫多行)填寫代碼,完成功能。
第 18 行填寫:
hasNopass = true; break;
break 其實不是必須的,但是一旦確認有不及格的分數(shù),那么繼續(xù)篩選下去就沒有意義,用 break 跳出循環(huán)可以節(jié)省時間。
請驗證,完成請求
由于請求次數(shù)過多,請先驗證,完成再次請求
打開微信掃碼自動綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報