नमस्ते प्रिय प्रोग्रामर,जावा ऑपरेटरों का तर्क और & ||
मैं मैं एक सरणी में इस स्ट्रिंग में सभी नंबरों को सहेजना चाहते तो एक स्ट्रिंग String input = "30.09.1993";
है (केवल संख्याओं!)। "।" इंडेक्स 2 और 5 पर हैं इसलिए मैं अपने स्ट्रिंग के इन हिस्सों को अपने लूप में एक if-statement के साथ छोड़ना चाहता हूं।
मैंने अपनी समस्या तय की और सब ठीक काम करता है लेकिन मैं &&
और ||
ऑपरेटरों के तर्क से उलझन में हूं।
यह मेरा काम कर कोड है:
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-statement में तर्क के बारे में है। क्या कोई मुझे इसके पीछे तर्क बता सकता है? मैं हर मदद उत्तर के लिए पूरी तरह उलझन में हूं और आभारी हूं।
अभिवादन लुकास Warsitz
आपके उत्तर के बारे में थोड़ी देर सोचने के बाद मैंने इसे समझा, तेज़ उत्तर के लिए बहुत बहुत धन्यवाद! –