如何在消息对话框中正确使用命令“if”? [关闭]
Posted
技术标签:
【中文标题】如何在消息对话框中正确使用命令“if”? [关闭]【英文标题】:How I can correctly use command "if" in Message Dialog? [closed] 【发布时间】:2013-08-27 07:39:04 【问题描述】:我是 Java 新手。我想问一下如何在Message Dialog中使用if?
If "age" under 15, add message to new line of Message Dialog-
“你真宝贝”
我写了这段代码,但它是错误的。请帮助。
import javax.swing.JOptionPane;
public class Isim
public static void main(String[] args)
// TODO Auto-generated method stub
String name, age, baby;
name = JOptionPane.showInputDialog(null, "Enter Your name");
age = JOptionPane.showInputDialog(null, "Enter Your Age");
int i = new Integer(age).intValue();
baby = "You`re so baby";
JOptionPane.showMessageDialog(null, "Your Name is: "+name+"\n"+"Your Age is: "+age+"\n"+if (i < 15)baby);
【问题讨论】:
【参考方案1】:使用"Your Name is: "+ name + "\n" + "Your Age is: " + age + "\n" + (i < 15 ? "baby" : "")
详见this链接。
【讨论】:
如果指示“婴儿”而没有“”它工作。也谢谢你。【参考方案2】:使用Conditional operator:
JOptionPane.showMessageDialog(null, "Your Name is: "+name+"\n"+"Your Age is: "+age+"\n" +
(i < 15 ? baby : ""));
您也可以使用String.format
方法来避免这些连接:
JOptionPane.showMessageDialog(null, String.format("Your Name is: %s\n. Your Age is: %d\n. %s", name, age, (i < 15? baby: ""));
【讨论】:
@user2703562。不客气:)【参考方案3】:试试这个:
JOptionPane.showMessageDialog(null, "Your Name is: "+name+"\n"+"Your Age is: "+age+"\n"+ (i < 15) ? baby : String.Empty);
它评估条件,在本例中为i < 15
,如果评估为真,则返回 ? 之后的内容,在本例中为 baby
,否则在 : 之后的内容为空字符串 (String.Empty
)。
【讨论】:
【参考方案4】:你也可以这样做,以获得更可读的代码:
String age = JOptionPane.showInputDialog(null, "Enter your age");
int ageInt = new Integer(age).getValue();
String babe = "";
if(ageInt < 14)
babe = "You're so baby";
JOptionPane.showMessageDialog(null,"Your Name is: "+name+"\n"+"Your Age is: "+age+"\n"+baby);
【讨论】:
几乎是最佳答案。首先构建您的字符串,然后将其作为参数传递。麻烦的是,poster 对良好的编码实践没有兴趣。 @PeteBelford 是的,伙计,我只是想传播这个词;)谢谢你的评论。【参考方案5】:为了你和其他人的启迪,这是解决问题的方法:
public static final String babyMessage = " You`re so baby";
public static final int notABabyAge = 15;
public static String generateMessage(String name, int age)
StringBuilder sb = new StringBuilder("Your name is: ");
sb.append(name);
sb.append(". Your age is: ");
sb.append(age);
sb.append(".");
if(age < notABabyAge) sb.append(babyMessage);
return sb.toString();
public static void main(String args[])
String name, age, message;
name = JOptionPane.showInputDialog(null, "Enter Your name");
age = JOptionPane.showInputDialog(null, "Enter Your Age");
//Possible NumberFormatException here, enter aaa in the dialog, and boom.
int i = new Integer(age).intValue();
message = generateMessage(name,age);
JOptionPane.showMessageDialog(message);
这类问题经常出现。通常在与应用程序中的数据库交互时。通常,我们最终会使用变量和硬编码字符串的组合来构建 SQL 语句。
对于硬编码字符串,它们通常最好是静态的和最终的。对于诸如 notABabyAge 之类的变量,应该对这些类型进行编码,以便它们可以随着应用程序外部发生的配置而改变。
捕获 NumberFormatException 很重要,因为人们总是会尝试破坏您的代码。
【讨论】:
以上是关于如何在消息对话框中正确使用命令“if”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章