如何在消息对话框中正确使用命令“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 &lt; 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 &lt; 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”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EWS 保存对话历史消息并使其正确显示在对话历史文件夹中

如何使用引导对话框作为 vueJs 组件?

如何正确关闭MongoDB

如何存储在 Qt 设置中?

MFC如何在切换视图时关闭无模式对话框

如何使用条件关闭带有确定按钮的对话框[重复]