?操作員不起作用
回答
瞭解這裏的一點是,:運算符用於返回一個值。你基本上調用了這樣的功能:
anonymous function:
if(s1.charAt(i) == ' '):
return i++;
else:
return break;
沒有意義吧? ?:運算符僅被設計爲if/else返回語句的簡寫,而不是if/else的替代。
三元運算符是一個表達式,而不是一個語句。爲此,使用if ... else ...
。
您不能在三元條件表達式的一部分中使用break
,因爲break
不是表達式本身,而只是一個控制流語句。
爲什麼不直接使用if-else構造呢?
if (s1.charAt(i) == ' ') {
i++;
} else {
break;
}
當然,它的工作原理。但它是一個運營商。自從什麼時候發生諸如'打破'操作數的陳述?
我建議避開三元(?:)運算符,除了簡單的賦值。在我的職業生涯中,我看到了太多瘋狂的嵌套三元運算符;他們成爲維護頭痛(更多的認知超載 - 「不要讓我想!」)。
我不禁止他們在我的團隊,但建議他們明智地使用。使用精心它們比相應的if/else結構清潔劑: -
public int ifFoo() {
int i;
if(isSomethingTrue()) {
i = 5;
}
else {
i = 10;
}
return i;
}
相比三元可供選擇: -
public int ternaryFoo() {
final int i = isSomethingTrue()
? 5
: 10;
return i;
}
三元版本是: -
- 短
- 更容易理解(當然我的意見!)
- 允許變量成爲「最終」;這簡化了代碼理解;在一個更復雜的方法中,閱讀代碼的人知道沒有進一步的代碼會嘗試和修改變量 - 更不用擔心。
'return isSomethingTrue()? 5:10;如果聲明和無用的局部變量十分清晰, – whiskeysierra 2010-10-23 12:02:58
我只放置局部變量,以便我可以在該行上斷點,如果我需要調試。不管怎樣,都不會過於臃腫! – 2010-10-23 21:26:50
只要在使用前通過所有代碼路徑分配變量,該變量實際上可以是最終的。 – EJP 2010-10-25 11:03:50
- 1. 操作員新操作員和新操作員不能重載?
- 2. GLib.Menu操作不起作用
- 3. UIAlertController操作不起作用?
- 4. apps.uses操作不起作用
- 5. ImageButton操作不起作用
- 6. DOM操作不起作用
- 7. MenuItemButtom操作不起作用
- 8. Liferay操作不起作用
- 9. UIBarButton操作不起作用
- 10. get_header操作不起作用
- 11. !=操作員不工作
- 12. 成員操作員不工作
- 13. 用或操作員
- 14. AngularJS指令DOM操作不起作用
- 15. Laravel 4.2表單操作不起作用
- 16. 框架7操作表不起作用
- 17. 我的文章操作不起作用
- 18. UIBarButtonItem:目標操作不起作用?
- 19. 休眠級聯操作不起作用
- 20. jsf commandbutton操作不起作用ajax
- 21. 刪除操作不起作用
- 22. Frame.Content,賦值操作不起作用?
- 23. Gmail RSVP操作不起作用
- 24. Intent_Filter操作在AndroidManifest中不起作用
- 25. 插拔操作不起作用
- 26. HTML5像素操作不起作用
- 27. 時間軸操作不起作用CS3
- 28. AlertiteDialog SQLite操作不起作用
- 29. JSF 2.0:操作不起作用
- 30. Selenium MoveToElement操作不起作用
如果你在[while,for,w/e]循環中有這個工作嗎? – sova 2010-10-23 09:17:29