【问题标题】:Basic calculator in JavaJava中的基本计算器
【发布时间】:2013-01-18 12:11:04
【问题描述】:

我正在尝试在Java 中创建一个基本的calculator。我对编程很陌生,所以我正在努力适应它。

import java.util.Scanner;
import javax.swing.JOptionPane;

public class javaCalculator 
{

    public static void main(String[] args) 
    {
        int num1;
        int num2;
        String operation;


        Scanner input = new Scanner(System.in);

        System.out.println("please enter the first number");
        num1 = input.nextInt();

        System.out.println("please enter the second number");
        num2 = input.nextInt();

        Scanner op = new Scanner(System.in);

        System.out.println("Please enter operation");
        operation = op.next();

        if (operation == "+");
        {
            System.out.println("your answer is" + (num1 + num2));
        }
        if  (operation == "-");
        {
            System.out.println("your answer is" + (num1 - num2));
        }

        if (operation == "/");
        {
            System.out.println("your answer is" + (num1 / num2));
        }
        if (operation == "*")
        {
            System.out.println("your answer is" + (num1 * num2));
        }


    }
}

这是我的代码。它会提示输入数字和操作,但会一起显示答案?

【问题讨论】:

  • 这是编程作业吗?这是 CS 中非常常见的第​​一年任务。
  • 尝试 Integer.parseInt(num1) + Integer.parseInt(num2);并从 if 语句中删除半列 (;) !
  • @Amelia 是的,我正在读计算机科学,第一年 :)

标签: java calculator


【解决方案1】:

制作简单计算器的Java程序示例:

import java.util.Scanner;

public class Calculator
{
public static void main(String args[])
{
    float a, b, res;
    char select, ch;
    Scanner scan = new Scanner(System.in);

    do
    {
        System.out.print("(1) Addition\n");
        System.out.print("(2) Subtraction\n");
        System.out.print("(3) Multiplication\n");
        System.out.print("(4) Division\n");
        System.out.print("(5) Exit\n\n");
        System.out.print("Enter Your Choice : ");
        choice = scan.next().charAt(0);

        switch(select)
        {
            case '1' : System.out.print("Enter Two Number : ");
                a = scan.nextFloat();
                b = scan.nextFloat();
                res = a + b;
                System.out.print("Result = " + res);
                break;
            case '2' : System.out.print("Enter Two Number : ");
                a = scan.nextFloat();
                b = scan.nextFloat();
                res = a - b;
                System.out.print("Result = " + res);
                break;
            case '3' : System.out.print("Enter Two Number : ");
                a = scan.nextFloat();
                b = scan.nextFloat();
                res = a * b;
                System.out.print("Result = " + res);
                break;
            case '4' : System.out.print("Enter Two Number : ");
                a = scan.nextFloat();
                b = scan.nextFloat();
                res = a / b;
                System.out.print("Result = " + res);
                break;
            case '5' : System.exit(0);
                break;
            default : System.out.print("Wrong Choice!!!");
        }
    }while(choice != 5);       
}
}

【讨论】:

    【解决方案2】:
    import java.util.Scanner;
    public class JavaApplication1 {
    
    
        public static void main(String[] args) {
    
             int x,
             int y;
    
             Scanner input=new Scanner(System.in);
             System.out.println("Enter Number 1");
             x=input.nextInt();
             System.out.println("Enter Number 2");
             y=input.nextInt();
    
             System.out.println("Please enter operation + - / or *");
             Scanner op=new Scanner(System.in);
             String operation = op.next();
    
             if (operation.equals("+")){
                 System.out.println("Your Answer: " + (x+y));
             }
             if (operation.equals("-")){
                 System.out.println("Your Answer: "+ (x-y));
             }
             if (operation.equals("/")){
                 System.out.println("Your Answer: "+ (x/y));
             }
             if (operation.equals("*")){
                System.out.println("Your Answer: "+ (x*y));
             }
        }
    
    }
    

    【讨论】:

    • 没有被否决,但您应该添加解释而不是仅代码回答
    【解决方案3】:

    我们可以简单地使用 in.next().charAt(0); 通过初始化 operation+ - * / 操作分配为字符> 作为 char

    导入 java.util.*; 公共类计算器{

    public static void main(String[] args) {
    
    Scanner in = new Scanner(System.in);
    
    char operation;
    int num1;
    int num2;
    
     System.out.println("Enter First Number");
    
    num1 = in.nextInt();
    
    System.out.println("Enter Operation");
    
    operation = in.next().charAt(0);
    
    System.out.println("Enter Second Number");
    
    num2 = in.nextInt();
    
    if (operation == '+')//make sure single quotes
    {
        System.out.println("your answer is " + (num1 + num2));
    }
    if (operation == '-')
    {
        System.out.println("your answer is " + (num1 - num2));
    }
    if (operation == '/')
    {
        System.out.println("your answer is " + (num1 / num2));
    }
    if (operation == '*')
    {
        System.out.println("your answer is " + (num1 * num2));
    }
    
    }
    

    }

    【讨论】:

      【解决方案4】:
      public class SwitchExample {
      
          public static void main(String[] args) throws Exception {
              System.out.println(":::::::::::::::::::::Start:::::::::::::::::::");
              System.out.println("\n\n");
      
              System.out.println("1. Addition");
              System.out.println("2. Multiplication");
              System.out.println("3. Substraction");
              System.out.println("4. Division");
              System.out.println("0. Exit");
              System.out.println("\n");
      
              System.out.println("Enter Your Choice :::::::  ");
              BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
              String str = br.readLine();
      
              int usrChoice = Integer.parseInt(str);
      
              switch (usrChoice) {
                  case 1:
                      doAddition();
                      break;
                  case 2:
                      doMultiplication();
                      break;
                  case 3:
                      doSubstraction();
                      break;
                  case 4:
                      doDivision();
                      break;
      
                  case 0:
                      System.out.println("Thank you.....");
                      break;
      
                  default:
                      System.out.println("Invalid Value");
              }
      
              System.out.println(":::::::::::::::::::::End:::::::::::::::::::");
      }
      
      public static void doAddition() throws Exception {
          System.out.println("******* Enter in Addition Process ********");
      
          String strNo1, strNo2;
      
          System.out.println("Enter Number 1 For Addition : ");
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          strNo1 = br.readLine();
      
          System.out.println("Enter Number 2 For Addition : ");
          BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
          strNo2 = br1.readLine();
      
          int no1 = Integer.parseInt(strNo1);
          int no2 = Integer.parseInt(strNo2);
      
          int result = no1 + no2;
      
          System.out.println("Addition of " + no1 + " and " + no2 + " is ::::::: " + result);
      }
      
      public static void doSubstraction() throws Exception {
          System.out.println("******* Enter in Substraction Process ********");
      
          String strNo1, strNo2;
      
          System.out.println("Enter Number 1 For Substraction : ");
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          strNo1 = br.readLine();
      
          System.out.println("Enter Number 2 For Substraction : ");
          BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
          strNo2 = br1.readLine();
      
          int no1 = Integer.parseInt(strNo1);
          int no2 = Integer.parseInt(strNo2);
      
          int result = no1 - no2;
      
          System.out.println("Substraction of " + no1 + " and " + no2 + " is ::::::: " + result);
      }
      
      public static void doMultiplication() throws Exception {
          System.out.println("******* Enter in Multiplication Process ********");
      
          String strNo1, strNo2;
      
          System.out.println("Enter Number 1 For Multiplication : ");
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          strNo1 = br.readLine();
      
          System.out.println("Enter Number 2 For Multiplication : ");
          BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
          strNo2 = br1.readLine();
      
          int no1 = Integer.parseInt(strNo1);
          int no2 = Integer.parseInt(strNo2);
      
          int result = no1 * no2;
      
          System.out.println("Multiplication of " + no1 + " and " + no2 + " is ::::::: " + result);
      }
      
      public static void doDivision() throws Exception {
          System.out.println("******* Enter in Dividion Process ********");
      
          String strNo1, strNo2;
      
          System.out.println("Enter Number 1 For Dividion : ");
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          strNo1 = br.readLine();
      
          System.out.println("Enter Number 2 For Dividion : ");
          BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
          strNo2 = br1.readLine();
      
          int no1 = Integer.parseInt(strNo1);
          int no2 = Integer.parseInt(strNo2);
      
          float result = no1 / no2;
      
          System.out.println("Division of " + no1 + " and " + no2 + " is ::::::: " + result);
      }
      

      }

      【讨论】:

        【解决方案5】:
        Here is simple code for calculator so you can consider this
        import java.util.*;
        import java.util.Scanner;
        public class Hello {
            public static void main(String[] args)
            {
                System.out.println("Enter first and second number:");
                Scanner inp= new Scanner(System.in);
                int num1,num2;
                num1 = inp.nextInt();
                num2 = inp.nextInt();
                int ans;
                System.out.println("Enter your selection: 1 for Addition, 2 for substraction 3 for Multiplication and 4 for division:");
                int choose;
                choose = inp.nextInt();
                switch (choose){
                case 1:
                    System.out.println(add( num1,num2));
                    break;
                case 2:
                    System.out.println(sub( num1,num2));
                    break;      
                case 3:
                    System.out.println(mult( num1,num2));
                    break;
                case 4:
                    System.out.println(div( num1,num2));
                    break;
                    default:
                        System.out.println("Illigal Operation");
        
        
                }
        
        
        
            }
            public static int add(int x, int y)
            {
                int result = x + y;
                return result;
            }
            public static int sub(int x, int y)
            {
                int result = x-y;
                return result;
            }
            public static int mult(int x, int y)
            {
                int result = x*y;
                return result;
            }
            public static int div(int x, int y)
            {
                int result = x/y;
                return result;
            }
        
        }
        

        【讨论】:

        • 虽然此代码在技术上有效,但它的运行方式与问题中的代码明显不同,从而避免了解决该代码中的任何错误。
        【解决方案6】:
        import java.util.Scanner;
        public class AdditionGame {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
        
            int num1;
            int num2;
            String operation;
        
            Scanner input = new Scanner(System.in);
        
            System.out.println("Please Enter The First Number");
            num1 = input.nextInt();
        
            System.out.println("Please Enter The Second Number");
            num2 = input.nextInt();
        
            Scanner op = new Scanner (System.in);
        
            System.out.println("Please Enter The Operation");
            operation = op.next();
        
            if (operation.equals("+"))
            {
                System.out.println("Your Answer is "+(num1 + num2));
            }
            else if (operation.equals("-"))
            {
                System.out.println("Your Answer is "+(num1 - num2));
            }       
            else if (operation.equals("*"))
            {
                System.out.println("Your Answer is "+(num1 * num2));
            }   
            else if (operation.equals("/"))
            {
                System.out.println("Your Answer is "+(num1 / num2));
            }
        }
        

        }

        【讨论】:

        • 回答请尝试添加一些自然文本来解释您的解决方案至少一点点。
        【解决方案7】:

        导入 java.util.Scanner; 导入 javax.swing.JOptionPane;

        公共类 javaCalculator {

        public static void main(String[] args) 
        {
            int num1;
            int num2;
            String operation;
        
        
            Scanner input = new Scanner(System.in);
        
            System.out.println("please enter the first number");
            num1 = input.nextInt();
        
            System.out.println("please enter the second number");
            num2 = input.nextInt();
        
            Scanner op = new Scanner(System.in);
        
            System.out.println("Please enter operation");
            operation = op.next();
        
            if (operation.equals("+"))
            {
                System.out.println("your answer is" + (num1 + num2));
            }
           else if  (operation.equals("-"))
            {
                System.out.println("your answer is" + (num1 - num2));
            }
        
          else if (operation.equals("/"))
            {
                System.out.println("your answer is" + (num1 / num2));
            }
           else if (operation.equals("*"))
            {
                System.out.println("your answer is" + (num1 * num2));
            }
           else 
            {
               System.out.println("Wrong selection");
            }
        
        
        }
        

        }

        【讨论】:

          【解决方案8】:

          从您的if 语句中删除分号,否则后面的代码将是独立的并且将始终执行:

          if (operation == "+");
                               ^
          

          也使用.equals 表示Strings== 比较Object 引用:

           if (operation.equals("+")) {
          

          【讨论】:

          • ^ 这个。顺便说一句该死的。作为一个初学者程序员,我想我终于可以回答一个问题了!唉,不够快!!
          【解决方案9】:

          equals(..) 比较字符串而不是==

          if (operation.equals("+")
          {
              System.out.println("your answer is" + (num1 + num2));
          }
          if (operation.equals("-"))
          {
              System.out.println("your answer is" + (num1 - num2));
          }
          if (operation.equals("/"))
          {
              System.out.println("your answer is" + (num1 / num2));
          }
          if (operation .equals( "*"))
          {
              System.out.println("your answer is" + (num1 * num2));
          }
          

          条件后面的; 是一个空语句,因此条件完全没有效果。

          如果您使用 java 7,您还可以将 if 语句替换为 switch
          在 java operation 的长度是否为 1,然后切换 char [switch (operation.charAt(0))]

          【讨论】:

            【解决方案10】:

            如果这样可以消除错误,使用case 而不是if 可能会更好,但我认为它更干净..switch (operation){case +: System.out.println("your answer is" + (num1 + num2));break;case -: System.out.println("your answer is" - (num1 - num2));break; ...

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-04-16
              • 1970-01-01
              相关资源
              最近更新 更多