बनाता है इसलिए मैं एक प्रोग्राम तैयार कर रहा हूं जो उपयोगकर्ता इनपुट से इट्स लेता है। मेरे पास एक बहुत सीधी कोशिश/पकड़ ब्लॉक है जो, यदि उपयोगकर्ता int में प्रवेश नहीं करता है, तब तक ब्लॉक को दोहराना चाहिए जब तक कि वे ऐसा न करें। तो ट्राई/कैच वास्तव में क्या यह चाहिए था करता है और मुझे इसे फिर से में डाल बनाताइनपुटमैस्चैच अपवाद के साथ प्रयास/पकड़ें अनंत लूप
import java.util.InputMismatchException;
import java.util.Scanner;
public class Except {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean bError = true;
int n1 = 0, n2 = 0, nQuotient = 0;
do {
try {
System.out.println("Enter first num: ");
n1 = input.nextInt();
System.out.println("Enter second num: ");
n2 = input.nextInt();
nQuotient = n1/n2;
bError = false;
}
catch (Exception e) {
System.out.println("Error!");
}
} while (bError);
System.out.printf("%d/%d = %d",n1,n2, nQuotient);
}
}
अगर मैं दूसरे पूर्णांक के लिए एक 0 दर्ज,: यहाँ कोड के प्रासंगिक हिस्सा है। लेकिन, अगर मेरे पास एक इनपुटमिस्मैच अपवाद है, तो संख्याओं में से किसी एक के लिए 5.5 दर्ज करके, यह केवल मेरे त्रुटि संदेश को अनंत लूप में दिखाता है। यह क्यों हो रहा है, और मैं इसके बारे में क्या कर सकता हूं? (वैसे, मैं स्पष्ट रूप से तर्क को पकड़ने के लिए के रूप में InputMismatchException टाइपिंग की कोशिश की है, लेकिन यह समस्या ठीक नहीं होती।
यह वाकई बहुत अच्छा है, धन्यवाद! क्या आप थोड़ा और विस्तार से समझा सकते हैं कि आपको 'अगली() 'कमांड की आवश्यकता क्यों है? मेरे पास कुछ विचार है लेकिन यह मेरे लिए थोड़ा अस्पष्ट है। –
@limp_chimp ने प्रश्न को अद्यतन किया। –