【问题标题】:Java Switch Statement for operators运算符的 Java Switch 语句
【发布时间】:2017-07-14 20:41:45
【问题描述】:

帮助大家,我正在尝试创建一个程序,让您选择 +、-、/、* 以及如何使用 switch 语句使其工作

import java.util.Scanner;

public class practice1{
    public static void main (String[]Args){
        Scanner input = new Scanner(System.in);
        Integer num1, num2;
        char op = '+', '-', '/', '*';

        System.out.println("Select an operator +,-,*,/");
        switch(op){
            case "+":
            System.out.println("Enter two numbers to add");
            System.out.print("Enter first number: "); num1 = input.nextInt();
            System.out.print("Enter second number: "); num2 = input.nextInt();
            System.out.println(num1 + num2);
            break;


        }

    }
}

【问题讨论】:

  • 有什么问题?就像其他几个casees。
  • 看看 switch 语句是如何工作的,然后添加额外的情况。简单的!然后,如果您喜欢冒险,请考虑用多态性替换 switch 语句。
  • 问题出在这一行:char op = '+', '-', '/', '*';。这不是有效的语法。你打算在那条线上做什么?
  • 你让用户选择运营商,但你没有让他输入他的选择...
  • 另一个问题是您在一个地方使用'+',而在另一个地方使用"+"。它们是不同的类型(charString)。我可以建议您有条不紊地阅读 Oracle Java 教程(或一本好的教科书)。这比 ... 猜测 + 在 StackOverflow 上询问更好的方式来学习语言。

标签: java switch-statement


【解决方案1】:

试试这个:

package com.sujit;

import java.util.Scanner;

public class UserInput {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        boolean flag = true;

        do {
        System.out.println("Enter 1st number");
        int num1 = input.nextInt();
        System.out.println("Enter 2nd number");
        int num2 = input.nextInt();

        System.out.println("select one operator :\n 1)+\n2)-\n3)*\n4)/\n5)Exit(Enter E)\n");
        System.out.println("Enter your choice :");

        char choice = input.next().charAt(0);
        String ch = String.valueOf(choice);
        switch (ch) {
        case "+":   
            System.out.println("Addition = "+(num1+num2));
            break;
        case "-":   
            System.out.println("Subtraction = "+(num1-num2));
            break;
        case "*":   
            System.out.println("Multiplication = "+(num1*num2));
            break;
        case "/":   
            if(num2==0){
                System.out.println("Cant devide by 0");
                flag=false;
            }
            else {
                System.out.println("Division = "+(num1/num2));
            }

        break;
        case "E":   
            input.close();
            flag=false;
            break;
        default:
            System.out.println("Wrong choice");
            break;
        }

        }       
        while(flag);
    }

}

【讨论】:

    猜你喜欢
    • 2011-07-10
    • 2020-08-19
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多