[英]Multiple if statements on one line
這樣的語句如何執行?
int x = 2, y = 3;
if (x != 0) if (x < 10) if (y < 10) {
x++;
y++;
System.out.printf("X and Y are: %d, and %d", x, y);
}
如果可以編譯,它將完全像這樣執行:
if (x != 0)
if (x < 10)
if (y < 1o) {
x++;
y++;
System.out.println(x, y);
}
但是,它不是很可讀。 您可以通過使用邏輯運算符或適當的換行符和縮進來提高其可讀性。
像這樣:
int x = 2, y = 3;
if ((x != 0) && (x < 10) && (y < 10))
{
x++;
y++;
System.out.println(x, y);
}
它的運行方式類似於Nested if 。 如果使用條件AND,您為什么不首先檢查所有條件。 這樣,您就不需要其他人了。
但是,如果每個括號都帶有括號,則是一個好習慣。 這樣,當將來代碼發生更改時,它的可讀性和錯誤率就會降低
if()if()if()只是簡寫而已
if(x != 0){
if(x < 10){
if(y < 1o){
x++;
y++;
System.out.println(x, y);
}else{}
}else{}
}else{}
它們是嵌套的。 基本上,花括號對於一行語句塊是可選的。 我假設y < 1o
應該是y < 10
,而且您的println
看起來可疑。
if (x != 0) {
if (x < 10) {
if (y < 10) {
x++;
y++;
// System.out.println(x, y);
System.out.println(Integer.toString(x) + " " + y);
}
}
}
您當然可以將它們與an and
like合並為一個if
(甚至一行)
if (x != 0 && x < 10 && y < 10) {
System.out.printf("%d %d%n", x++, y++);
}
這類似於
if (x != 0) {
if (x < 10) {
if (y < 10) {
x++;
y++;
System.out.println(x, y);
}
}
}
你可以用另一種方式寫
if((x != 0) && (x < 10) && (y < 10)) {
x++;
y++;
System.out.println(x, y);
}
只需使用&&運算符
int x = 2, y = 3;
if (x != 0 && x < 10 && y < 10) {
x++;
y++;
System.out.println(x, y);
}
如Andy所說,它的運作就像嵌套的。 而不是使用此方法將所有條件寫入一個if語句中,並使用&&運算符。
使用Java邏輯運算符可以解決您的問題。
點擊此鏈接以了解更多信息
http://www.cafeaulait.org/course/week2/45.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.