我试图捕获插入文本并且程序必须解析的异常。编译时表示变量 num 可能尚未初始化。(第 31 行)我无法弄清楚它为什么会这样做。
代码如下。提前致谢。
// Java packages
import javax.swing.JOptionPane;
// program uses JOptionPane
class Help2Gui {
public static void main(String args[]) {
// variable declaration
String choice;
int num;
// read in first number from user as a string
choice =
JOptionPane
.showInputDialog("Help on: \n \t 1. class \n \t 2. object \n \t 3. method \n \t 4. variable \n \t 5. constructor \n \t 6. Quit \n Enter a number from the list above.");
if (choice == null) {
System.exit(0);
}
do { // begin a loop to display initial choice, repeating until 6 is
// entered
// convert numbers from type String to type int
try {
num = Integer.parseInt(choice);
}
catch (NumberFormatException nfe) {
}
switch (num) { // display result for each item entered by user
case 1:
JOptionPane.showMessageDialog(null,
"\n A class is a definition of an object.",
"Java Help System", JOptionPane.PLAIN_MESSAGE);
break;
case 2:
JOptionPane
.showMessageDialog(
null,
"The switch: \n \n switch (expression) { \n case constant: \n statement sequence \n break \n // ... \n } ; ",
"Java Help System", JOptionPane.QUESTION_MESSAGE);
break;
case 3:
JOptionPane
.showMessageDialog(
null,
"The for: \n \n for(init; condition; iteration) \n statement;",
"Java Help System", JOptionPane.INFORMATION_MESSAGE);
break;
case 4:
JOptionPane.showMessageDialog(null,
"The while: \n \n while(condition) statement;",
"Java Help System", JOptionPane.WARNING_MESSAGE);
break;
case 5:
JOptionPane
.showMessageDialog(
null,
"The do-while: \n \n do { \n statement; \n } while (condition);",
"Java Help System", JOptionPane.ERROR_MESSAGE);
break;
case 6:
System.exit(0);
break;
default:
JOptionPane.showMessageDialog(null,
"Enter a number from 1 to 5 or 6 to Quit",
"Java Help System", JOptionPane.ERROR_MESSAGE);
}
// read in first number from user as a string
choice =
JOptionPane
.showInputDialog("Help on: \n \t 1. if \n \t 2. switch \n \t 3. for \n \t 4. while \n \t 5. do-while \n \t 6. Quit \n Enter a number from the list above.");
try {
// attempt to convert the String to an int
num = Integer.parseInt(choice);
}
catch (NumberFormatException nfe) {
JOptionPane.showMessageDialog(null,
"Enter a number from 1 to 5 or 6 to Quit",
"Java Help System", JOptionPane.ERROR_MESSAGE);
}
// convert numbers from type String to type int
}
while (num != 6); // end of do-while loop.
System.exit(0); // terminate application with window
} // end method main
} // end class Help2Gui