3

我是 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});
 }
}
4

5 回答 5

4

使用条件运算符

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: ""));
于 2013-08-24T08:40:59.790 回答
3

对于您和其他人的启发,这是解决问题的方法:

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 很重要,因为人们总是会尝试破坏您的代码。

于 2013-08-24T09:13:24.410 回答
2

你也可以这样做,以获得更易读的代码:

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);
于 2013-08-24T08:45:45.797 回答
1

利用"Your Name is: "+ name + "\n" + "Your Age is: " + age + "\n" + (i < 15 ? "baby" : "")

有关详细信息,请参阅链接。

于 2013-08-24T08:40:59.573 回答
1

尝试这个:

JOptionPane.showMessageDialog(null, "Your Name is: "+name+"\n"+"Your Age is: "+age+"\n"+ (i < 15) ? baby : String.Empty);

它评估条件,在这种情况下i < 15,如果评估为真,则返回 ? 之后的内容,在这种情况下baby,否则返回 : 之后的内容,一个空字符串 ( String.Empty)。

于 2013-08-24T08:42:09.923 回答