你好,親愛的程序員,Java運算符的邏輯&&和||
我有一個字符串String input = "30.09.1993";
然後我想保存的所有號碼在此字符串數組(僅數字!)。 「。」在索引2和5,所以我想跳過我的字符串的這些部分在我的循環與if語句。
我解決了我的問題,一切正常,但我與&&
和||
運營商的邏輯混淆。
這是我的工作代碼:
String input = "30.09.1993";
int[] eachNumbers = new int[8];
int x = 0;
for(int i = 0; i <= 9; i++){
if(i != 2 && i != 5){
eachNumbers[x] = Integer.parseInt(input.substring(i, i+1));
x++;
}
}
這是不工作的代碼:
String input = "30.09.1993";
int[] eachNumbers = new int[8];
int x = 0;
for(int i = 0; i <= 9; i++){
if(i != 2 || i != 5){
eachNumbers[x] = Integer.parseInt(input.substring(i, i+1));
x++;
}
}
這兩段代碼之間的唯一區別是,如果子句中的運營商。
我認爲,這些運營商的結果是:
&&
操作:
false + false = false
true + false = false
false + true = false
true + true = true
||
操作:
false + false = false
true + false = true
false + true = true
true + true = true
所以,在我看來,第二代碼片段應該工作,第一個應該拋出一個NumberFormatException
。但事實並非如此。
我確信有一些更好的解決方案,我即將做的事情,但我的問題只是關於我的if語句的邏輯。有人能向我解釋這背後的邏輯嗎?我完全困惑,並感謝每一個有幫助的答案。
問候 盧卡斯Warsitz
想了一會兒你的答案我明白了,非常感謝你的快速答案! –