在if语句中使用if语句的结果

在if语句中使用if语句的结果

问题描述:

我在写一个测验应用程序,当您回答正确的问题并且分数增加时,您会得到分数,我必须使用if语句。请任何人知道如何在if语句中使用if语句中的值!我有点困惑,它让我在这里工作......感谢您的帮助!...这是一个小小的代码示例;在if语句中使用if语句的结果

 int x = 3; 
     String xy = Integer.toString(x); 
     int y = 0; 
     String yy = Integer.toString(y); 

     JButton one = new JButton ("Quest 1"); 
     one.addActionListener (new ActionListener(){ 
      public void actionPerformed(ActionEvent p) { 
     JFrame ex = new JFrame(); 
     ex.setTitle("Question 1); 
     ex.setSize(400, 400); 
     ex.setLayout(new FlowLayout()); 
     ex.setBackground(Color.WHITE); 

     JLabel ey = new JLabel ("What is the capital of Japan?); 
     Font tan = new Font ("Script MT Bold", Font.BOLD, 18); 
     ey.setFont(tan); 
     ey.setForeground(Color.BLACK); 
     ex.add(ey, BorderLayout.NORTH); 

     JButton answ = new JButton("submit"); 

     JTextField g = new JTextField (10); 
     g.setFont(tan); 

     String ans = "Tokyo"; 

     String merit = "Correct"; 
     String flop = "wrong"; 
     String mer = merit + ans; 
     String flip = flop + ans; 
    answ.addActionListener(new ActionListener(){ 
public void actionPerformed (ActionEvent p) { 

     if (g.getText.equals("Tokyo") { 
      JOptionPane.showMessageDialog(null, mer); 
      one.setText(xy); 
     } 
     else { 
     JOptionPane.showMessageDialog(null,flip); 
     one.setText(yy); 
     } 

     //In my next Action Listener, I would love to 
     //pick the score from the previous listener....and add to the next score.... 
     //So that we have something like .... 
     //x(updated from previous listener) + x 
      ex.add(g, BorderLayout.SOUTH); 
     } 
     }); 
} 
}); 
+1

请多花一点时间和精力来解释您的问题,因为由于您提供的信息很少,所以这是相当混乱的。 –

+0

为什么再次*?......关于这个问题还不清楚吗? –

+0

我不能肯定地说,但你还没有发布[mcve],还没有澄清你是否在一个位上。 –

我可以在提供的代码想唯一的问题是,你正在测试如果一个JTextField的文本包含在你的GUI代码造物的特定字符串,“东京”。这是在GUI创建时以及在用户有机会输入数据之前运行的代码。为了解决这个问题,if测试应该在一些监听器中,也许是JButton的ActionListener。否则,我不知道你是否在if内意味着什么。


编辑

关于你的新的信息:

我写一个测验的应用程序,因为你回答正确的问题和你的分数增加你在哪里得到的痕迹,而我使用if语句。

您需要完全重新设计你的代码你很难在GUI中编码的代码逻辑,使一个非常刚性,巨大,并难以提高程序(如你发现了),因为代码逻辑必须随着程序状态的改变而改变。但是你应该从GUI中分离出你的程序逻辑,“模型”,“视图”,并尝试创建它们并独立地测试它们,类似于(或等于)“Model-View-控制器“或”MVC“程序设计。从模型开始,程序的“胆量”,并创建您的非GUI问题类,其中一个带有实例字段,方法和任何其他支持类。一旦经过测试和调试,然后尝试创建可使用此模型并显示其状态的GUI或视图类。您可能还想创建一个带有侦听器的“Controller”类,以帮助将视图连接到模型。

例如,如果你的测验是做一个选择题类型的程序,然后再考虑:

包含字符串问题,可能的答案字符串和正确答案字符串
  • 一个问题类。
  • 给它一个public boolean test(String testString),如果将正确答案String传递给它,则返回true。
  • 允许Question类将可能的答案字符串的顺序随机化,该字符串可能在ArrayList中保存。
  • 然后创建一个包含问题ArrayList的Quiz类。

然后创建一个GUI来显示这些。

  • 我通常创建的GUI适合于创建JPanel,而不是JFrames以提高灵活性,然后在需要时创建JFrame。
  • 创建一个显示问题字符串和随机可能答案字符串的QuestionPanel。
  • 使用ButtonGroup将可能的答案显示为JRadioButton,以将选择限制为一个。
  • 等....

您还需要一个类从每题一个文本文件中读取数据,并将该数据加载到测验类。

你还需要一个评分机制。

+0

理解!! .....我已经完成了......我只是不想显示很多代码.....但是然后....我需要一些更多的分数增量语法! –

+1

@ Presh_K7:然后澄清你的问题,花时间制定一个明确的具体问题,将基本代码烧写到[mcve]。为了帮助改进上述问题,请查看[Jon Skeet的*问题清单](http://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/)。这是他在[写完美的问题]上精彩的长篇文章的缩写版本(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。 –

请将所有必需的变量作为类级变量,而不是在actionlistner方法中声明它。所有方法都会显示类级变量,所以不需要传递这些变量。将评分变量声明为类级别。

public class ClassTest { 
     int score=0; 

     public void acgionlistner1(Event ev) 
     { 
      if(ans.equals(userinput)) 
      { 
       score++; 
      } 
     } 
     public void acgionlistner2(Event ev) 
     { 
      if(ans.equals(userinput)) 
      { 
       score++; 
      } 
     } 
. 
.