Calculator (Switch)
हम क्या बना रहे हैं
Calculator दो numbers और एक operator (+, -, *, /) लेकर result दिखाता है। Java में यह बढ़िया छोटा project है जो Scanner input, switch statement, और divide by zero को सरल error handling एक साथ लाता है।
switch logic
double a = 10, b = 5;
char op = '+';
double result = 0;
switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/': result = a / b; break;
default: System.out.println("Invalid operator");
}
System.out.println(result);
switch op को एक case से मिलाता है और वो operation चलाता है। हर case break पर ख़त्म होता है, और default अनजान operator पकड़ता है।
पूरा program
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
char op = sc.next().charAt(0);
double b = sc.nextDouble();
double result = 0;
switch (op) {
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/':
if (b == 0) { System.out.println("Cannot divide by zero"); return; }
result = a / b; break;
default: System.out.println("Invalid operator"); return;
}
System.out.println("Result: " + result);
}
}
हम Scanner से दो numbers और operator पढ़ते हैं, switch से operation चुनते हैं, और result print करते हैं। divide case पहले zero जाँचता है।
Divide by zero संभालना
case '/':
if (b == 0) {
System.out.println("Cannot divide by zero");
} else {
result = a / b;
}
break;
शून्य से भाग संभालना ज़रूरी है वरना program error देता है। हम भाग से पहले if (b == 0) जाँचते हैं और साफ़ message दिखाते हैं। आप ArithmeticException भी catch कर सकते हैं।
Menu loop
while (true) {
// a, op, b पढ़ो और switch से गणना करो...
System.out.print("Another? (y/n): ");
if (!sc.next().equals("y")) break;
}
System.out.println("Goodbye");
while (true) loop user को कई calculations करने देता है। हर result के बाद, पूछिए और चाहते हैं या नहीं; "y" के अलावा कुछ भी loop break करके ख़त्म करता है।
आम गलतियाँ
breakभूलना। इसके बिना, switch अगले case में fall through करता है।- Divide by zero न जाँचना। हमेशा भाग को guard कीजिए।
- Operator गलत पढ़ना। एक char को
sc.next().charAt(0)इस्तेमाल कीजिए। - कोई default case नहीं। Invalid operators को
defaultसे संभालिए।
सारांश
- Calculator operator के आधार पर operation चुनता है — switch के लिए बढ़िया।
- Scanner (
nextDouble,next) से input पढ़िए। - हर case एक operation करता है और
breakपर ख़त्म होता है। - divide case को zero से guard कीजिए।
- User को दोहराने देने को
whileloop जोड़िए।
आगे, switch गहराई से सीखिए switch-case से, या input पढ़िए Scanner से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में calculator कैसे बनाऊँ?
Calculator को if-else के बजाय switch क्यों?
Java में divide by zero कैसे संभालूँ?
Java calculator में numbers कैसे पढ़ूँ?
nextDouble() और operator character को next()। java.util.Scanner import करना और new Scanner(System.in) बनाना याद रखिए।Calculator को दोहराने वाला कैसे बनाऊँ?
while (true), और quit करने का विकल्प दीजिए। हर result के बाद पूछिए user और calculation चाहता है या नहीं, और रुकने चुनने पर break कीजिए।