有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA找不到符号变量ans

这是我的代码,最后一行出现错误,说明找不到“symbol-variable ans”

我是java新手,我正在尝试编写一个简单的程序,允许用户输入整数并对这些整数执行操作

import java.util.Scanner;
/**
 * Write a description of class main here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class main {
  public static void main(String[] args){
      Scanner input = new Scanner(System.in);
      
      double inp1;
      double inp2;
      String opo;
      
      Scanner one = new Scanner(System.in);
      System.out.println("enter first input");
      inp1 = one.nextInt();
      
      Scanner two = new Scanner(System.in);
      System.out.println("enter second input");
      inp2 = two.nextInt();
      
      Scanner three = new Scanner(System.in);
      System.out.println("choose an oporation add/a sub/s mult/m div/d: ");
      
      opo = three.next();

      if (opo == "a"){
          double ans = inp1 + inp2;
      }
      else if (opo == "s"){
          double ans = inp1 - inp2;
      }
      else if (opo == "m"){
          double ans = inp1 * inp2;
      }  
      else if (opo == "d"){
          double ans = inp1 / inp2;
      }
        
      System.out.println("your answer is " + (String)ans);
    }  
}

共 (2) 个答案

  1. # 1 楼答案

    为什么要为每个变量定义Scanner对象?只需定义一个,并为每个变量使用该对象即可。我也同意内森·米尔斯的建议,你应该改变你的代码

    你现在不必面对那么多扫描对象的问题,只要想想如果你解决一个问题时有很多变量,那么那时你就会面临这个问题。因为它会消耗你的记忆

    在1处定义扫描仪对象

  2. # 2 楼答案

    将if/else链更改为此,它应该可以工作:

          double ans;
          if (opo == "a"){
              ans = inp1 + inp2;
            }
          else if (opo == "s"){
              ans = inp1 - inp2;
            }
          else if (opo == "m"){
              ans = inp1 * inp2;
            }  
          else if (opo == "d"){
              ans = inp1 / inp2;
            }