package hellojava;
import javax.swing.JOptionPane;
/**
*
* @author Samira
*/
public class HelloJava {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String name, surname, message;
JOptionPane.showMessageDialog( null, "Hello!");
name= JOptionPane.showInputDialog("What is your first name?");
surname= JOptionPane.showInputDialog("What is your last name?");
JOptionPane.showMessageDialog(null, "Please select the appropriate age"
+ " for joining Java Programming", "Information", JOptionPane.PLAIN_MESSAGE);
Object[] options= {"Age 18-21", "Age 22+"};
int userage= JOptionPane.showOptionDialog(null, "How old are you?",
"An Age Question",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null,
options,
options[1]);
message= String.format("Welcome" + name + " " + surname + " to Java Programming!");
JOptionPane.showMessageDialog(null, message);
}//end main
}//end class HelloJava
这是代码,我在第18行收到错误
答案 0 :(得分:5)
我尝试使用您的代码创建一个空的Java项目。我从编译器得到的是以下警告:"未使用局部变量userage的值"。
首先,此消息是警告消息,而不是错误。它们之间的区别在于错误会阻止代码编译,而当有警告消息时代码将编译。但是,警告提示仍然可能存在问题,因为程序的行为通常可能不是所希望的。
在您的情况下,编译器检测到您声明了变量" userage",但正如我们所看到的,此变量以后从未使用过,因此声明它不能用于任何目的。如果您以后实际使用此变量,例如执行布尔条件来验证年龄,或将其保存到文件中,或者只是使用JOptionPane输出它,那么编译器将检测到您正在使用该变量并赢得& #39;认为这个变量没用。
例如,尝试在声明" userage"之后添加此行:
JOptionPane.showMessageDialog(null, "You selected the choice options[" + Integer.toString(userage) + "].");
这将输出您的变量的值,该值表示您的"选项"中的选择选项的索引。数组,所以现在将使用该变量。
此外,在发布问题时,正如Niek T.提到的那样,它确实有助于添加您拥有的所有信息:问题是什么,您从编译器获得的确切信息,启动程序时会发生什么,这样,帮助者可以更快地回答,因为他们不需要用你的代码创建一个项目,就像我一样。
为了进一步阅读,我发现类似的主题有相同的问题: How to fix java warning for "The value of the local variable is not used "