Java 变量在初始化和声明时可能尚未初始化

Java 变量在初始化和声明时可能尚未初始化,java,Java,编译时,它表示变量secondNumberString可能尚未初始化。但我已将其声明为字符串,并在secondNumber开关中对其进行了初始化。我做错了什么?我只想把secondNumber,比如说他们输入5,转换成一个名为seondNumberString的字符串,并将其设为5,然后显示它。它必须使用开关 /* Programmer: Date: Wednesday, October 8, 2014 Description: A simple calculator */ import

编译时,它表示变量secondNumberString可能尚未初始化。但我已将其声明为字符串,并在secondNumber开关中对其进行了初始化。我做错了什么?我只想把secondNumber,比如说他们输入5,转换成一个名为seondNumberString的字符串,并将其设为5,然后显示它。它必须使用开关

 /*
Programmer: 
Date: Wednesday, October 8, 2014
Description: A simple calculator
*/

import javax.swing.JOptionPane;     // Imports the JOptionPane class

public class CalculatorStevenHasaka
{
   public static void main(String[] args)
   {
      String input;                 // To temporarily hold the input
      String firstNumberString;     // To hold the string name of the first number
      String secondNumberString;    // To hold the string name of the second number
      String operatorString;        // To hold the string name of the operator
      int firstNumber;              // To hold the first number
      int secondNumber;             // To hold the second number
      int answer;                   // To hold the answer
      char operator;                // To hold the operator

      // Ask the user for a number from 0-9 (The first number)
      input = JOptionPane.showInputDialog(null, "Please enter the first number. \nIt must be from 0 to 9. \nNo decimals, please.", "Calculator v1.0", JOptionPane.QUESTION_MESSAGE);
      // Convert the input to an integer
      firstNumber = Integer.parseInt(input);


      // Validate the input of firstNumber
      while (firstNumber < 0 || firstNumber > 9)
      {
         // Ask the user for a number from 0-9
         input = JOptionPane.showInputDialog(null, "Invalid number! \nIt must be a number from 0 to 9. \nNo decimals, please.", "Invalid Number", JOptionPane.WARNING_MESSAGE);
         // Convert the number to an integer
         firstNumber = Integer.parseInt(input);
      } // End of firstNumber validation


      // Ask the user for an operator
      input = JOptionPane.showInputDialog(null, "Please input an operator. \nYou can use  +,  -,  *,  /,  or  ^", "Calculator v1.0", JOptionPane.QUESTION_MESSAGE);
      // Convert the input to a character
      operator = input.charAt(0);


      // Validate the input of the operator
      while ((operator != '+') && (operator != '-') && (operator != '*') && (operator != '/') && (operator != '^'))
      {
         // Ask the user for an operator
         input = JOptionPane.showInputDialog(null, "Invalid operator! \nYou can only use  +,  -,  *,  /,  or  ^", "Invalid Operator", JOptionPane.WARNING_MESSAGE);
         // Convert the input to a character
         operator = input.charAt(0);
      } // End of operator validation


      // Ask the user for a number from 0-9 (The second number)
      input = JOptionPane.showInputDialog(null, "Please enter the second number. \nIt must be from 0 to 9. \nNo decimals, please.", "Calculator v1.0", JOptionPane.QUESTION_MESSAGE);
      // Convert the number to an integer
      secondNumber = Integer.parseInt(input);


      // Validate the input of secondNumber
      while (secondNumber < 0 || secondNumber > 9)
      {
         //Ask the user for a number from 0-9
         input = JOptionPane.showInputDialog(null, "Invalid number! \nIt must be a number from 0 to 9. \nNo decimals, please.", "Invalid Number", JOptionPane.WARNING_MESSAGE);
         // Convert the number to an integer
         secondNumber = Integer.parseInt(input);
      } // End of secondNumber validation   


      // Convert firstNumber to a string
      switch (firstNumber)
      {
         case 0:
            firstNumberString = "Zero";
            break;
         case 1:
            firstNumberString = "One";
            break;
         case 2:
            firstNumberString = "Two";
            break;
         case 3:
            firstNumberString = "Three";
            break;
         case 4:
            firstNumberString = "Four";
            break;
         case 5:
            firstNumberString = "Five";
            break;
         case 6:
            firstNumberString = "Six";
            break;
         case 7:
            firstNumberString = "Seven";
            break;
         case 8:
            firstNumberString = "Eight";
            break;
         case 9:
            firstNumberString = "Nine";
            break;
         default:
            JOptionPane.showMessageDialog(null, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
      } // End of firstNumber switch


      // Convert secondNumber to a string
      switch (secondNumber)
      {
         case 0:
            secondNumberString = "zero";
            break;
         case 1:
            secondNumberString = "one";
            break;
         case 2:
            secondNumberString = "two";
            break;
         case 3:
            secondNumberString = "three";
            break;
         case 4:
            secondNumberString = "four";
            break;
         case 5:
            secondNumberString = "five";
            break;
         case 6:
            secondNumberString = "six";
            break;
         case 7:
            secondNumberString = "seven";
            break;
         case 8:
            secondNumberString = "eight";
            break;
         case 9:
            secondNumberString = "nine";
            break;
         default:
            JOptionPane.showMessageDialog(null, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
      } // End of secondNumber switch


      // Convert operator to a string and perform the calculations
      if (operator == '+')
      {
         operatorString = "plus";
         answer = firstNumber + secondNumber;
         JOptionPane.showMessageDialog(null, "Blah: " + secondNumberString);
      }
      else if (operator == '-')
      {
         operatorString = "minus";
      }
      else if (operator == '*')
      {
         operatorString = "multiplied by";
      }
      else if (operator == '/')
      {
         operatorString = "divided by";
      }
      else if (operator == '^')
      {
         operatorString = "to the power of";
      }
      else
      {
         JOptionPane.showMessageDialog(null, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
      } // End of operator if/else if/else                    
   } // End of main
} // End of public class                               
/*
程序员:
日期:2014年10月8日星期三
描述:一个简单的计算器
*/
导入javax.swing.JOptionPane;//导入JOptionPane类
公共类计算器Tevenhasaka
{
公共静态void main(字符串[]args)
{
字符串输入;//临时保存输入
String firstNumberString;//保存第一个数字的字符串名称
String secondNumberString;//保存第二个数字的字符串名称
String运算符String;//保存运算符的字符串名称
int firstNumber;//保存第一个数字
int secondNumber;//保存第二个数字
int-answer;//保存答案
char运算符;//保留运算符
//要求用户输入0-9之间的数字(第一个数字)
input=JOptionPane.showInputDialog(null,“请输入第一个数字。\n它必须在0到9之间。\n请不要小数。”,“Calculator v1.0”,JOptionPane.QUESTION\u消息);
//将输入转换为整数
firstNumber=Integer.parseInt(输入);
//验证firstNumber的输入
而(firstNumber<0 | | firstNumber>9)
{
//请用户输入0-9之间的数字
input=JOptionPane.showInputDialog(null,“无效数字!\n它必须是0到9之间的数字。\n请不要小数。”,“无效数字”,JOptionPane.WARNING\u消息);
//将数字转换为整数
firstNumber=Integer.parseInt(输入);
}//firstNumber验证结束
//向用户询问操作员
input=JOptionPane.showInputDialog(null,“请输入运算符。\n您可以使用+、-、*、/、或^”,“计算器v1.0”,JOptionPane.QUESTION\u消息);
//将输入转换为字符
运算符=输入字符(0);
//验证操作员的输入
而((运算符!='+')&&&(运算符!='-')&&&(运算符!='*')&&&(运算符!='/')&&(运算符!='^'))
{
//向用户询问操作员
input=JOptionPane.showInputDialog(null,“无效运算符!\n您只能使用+、-、*、/、或^”,“无效运算符”,JOptionPane.WARNING\u消息);
//将输入转换为字符
运算符=输入字符(0);
}//运算符验证结束
//要求用户输入0-9之间的数字(第二个数字)
input=JOptionPane.showInputDialog(null,“请输入第二个数字。\n它必须在0到9之间。\n请不要小数。”,“Calculator v1.0”,JOptionPane.QUESTION\u消息);
//将数字转换为整数
secondNumber=Integer.parseInt(输入);
//验证secondNumber的输入
而(秒数<0 | |秒数>9)
{
//请用户输入0-9之间的数字
input=JOptionPane.showInputDialog(null,“无效数字!\n它必须是0到9之间的数字。\n请不要小数。”,“无效数字”,JOptionPane.WARNING\u消息);
//将数字转换为整数
secondNumber=Integer.parseInt(输入);
}//第二个数字验证结束
//将firstNumber转换为字符串
开关(第一个号码)
{
案例0:
firstNumberString=“零”;
打破
案例1:
firstNumberString=“一”;
打破
案例2:
firstNumberString=“两”;
打破
案例3:
firstNumberString=“三”;
打破
案例4:
firstNumberString=“四”;
打破
案例5:
firstNumberString=“五”;
打破
案例6:
firstNumberString=“六”;
打破
案例7:
firstNumberString=“七”;
打破
案例8:
firstNumberString=“八”;
打破
案例9:
firstNumberString=“九”;
打破
违约:
showMessageDialog(null,“无效输入!”,“错误”,JOptionPane.Error\u消息);
}//第一个数字开关的结尾
//将secondNumber转换为字符串
开关(第二个号码)
{
案例0:
secondNumberString=“零”;
打破
案例1:
secondNumberString=“一”;
打破
案例2:
secondNumberString=“两”;
打破
案例3:
secondNumberString=“三”;
打破
案例4:
secondNumberString=“四”;
打破
案例5:
secondNumberString=“五”;
打破
案例6:
secondNumberString=“六”;
打破
案例7:
secondNumberString=“七”;
打破
案例8:
secondNumberString=“八”;
打破
案例9:
secondNumberString=“九”;
打破
违约:
showMessageDialog(null,“无效输入!”,“错误”,JOptionPane.Error\u消息);
}//第二个数字开关结束
//将运算符转换为字符串并执行计算
if(运算符=='+')
{
运算符字符串=“plus”;
答案=第一个数字+第二个数字;
showMessageDialog(null,“Blah:+secondNumberString”);
}
else if(运算符=='-')
{
运算符字符串=“负”;
}
else if(运算符=='*')
default:
    JOptionPane.showMessageDialog(null, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
// Convert secondNumber to a string
  switch (secondNumber)
  {
     case 0:
        secondNumberString = "zero";
        break;
     case 1:
        secondNumberString = "one";
        break;
     case 2:
        secondNumberString = "two";
        break;
     case 3:
        secondNumberString = "three";
        break;
     case 4:
        secondNumberString = "four";
        break;
     case 5:
        secondNumberString = "five";
        break;
     case 6:
        secondNumberString = "six";
        break;
     case 7:
        secondNumberString = "seven";
        break;
     case 8:
        secondNumberString = "eight";
        break;
     case 9:
        secondNumberString = "nine";
        break;
     default:
        JOptionPane.showMessageDialog(null, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
  } // End of secondNumber switch
secondNumberString = null or secondNumberString = ""