我正在定义我的变量,但我仍然有错误

时间:2016-03-05 22:39:13

标签: java calculator

我是编程新手,除了我的answer变量之外,这个程序正在运行。除非我在第8行定义它,程序才会运行,即使我在switch语句中定义它。错误在第32行,并说明,

  

本地变量答案可能尚未初始化。

提前谢谢。

package learn;

import java.util.Scanner;

class calculator {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        double numberOne, numberTwo, answer;
        System.out.println("Enter first number:");
        numberOne = input.nextDouble();
        System.out.println("Enter second number");
        numberTwo = input.nextDouble();
        String operation;
        System.out.println("Enter operation (Valid operations are add, subtract, multiply, and divide)");
        operation = input.next();
        switch (operation) {
        case "add":
            answer = numberOne + numberTwo;
            break;
        case "subtract":
            answer = numberOne - numberTwo;
            break;
        case "multiply":
            answer = numberOne * numberTwo;
            break;
        case "divide":
            answer = numberOne / numberTwo;
            break;
        default:
            System.out.println("Invalid operation");
        }
        System.out.println(answer);
        input.close();
    }
}

2 个答案:

答案 0 :(得分:0)

如果变量operation不是有效选项,那么您的开关将执行默认选项,而不是打印出未初始化的变量answer的值...

通过在声明变量后初始化变量来解决此问题。

答案 1 :(得分:0)

第32行的错误自我解释了解决问题所需做的事情:只需初始化iframe变量。

例如,你应该写:

jQuery(document).ready(function($) {
  $(".itakeover").fancybox({
    // API options
    type: "iframe"
  }); // fancybox
}); // ready

您必须初始化该变量,因为您不能在切换前的代码中的任何位置使用变量answer。然后,如果您的代码属于'默认值'切换案例变量double numberOne, numberTwo, answer; answer = 0; 没有任何指定的值...那么将在第32行打印出什么?