2013-12-15 1 views
1
package iCanDoIt; 

    import java.util.Scanner; 

    import javax.swing.JOptionPane; 

    public class Practice { 

     public static void main(String[] args) { 

     String msg=JOptionPane.showInputDialog("Enter a number"); 
     int num1=Integer.parseInt(msg); 
     String msg2=JOptionPane.showInputDialog("enter another number"); 
     int num2=Integer.parseInt(msg2); 
     int addition=num1+num2; 

     String msg3=JOptionPane.showInputDialog("What is" + num1 + "+ " + num2 + " ? "); 

     int answer=Integer.parseInt(msg3); 

     while(num1+num2!=answer){ 

      JOptionPane.showMessageDialog(null,"try again"); 
      String answer2=JOptionPane.showInputDialog("wrong. what is " + num1 + "+" + num2 + "?"); 
      int answer3=Integer.parseInt(answer2); 

     if (num1+num2==answer3) 

      JOptionPane.showMessageDialog(null,"GREAT job"); 


     } 
     System.exit(0); 

     } 


    } 

Я новичок в JAVA.JOptionPane и While Loop (добавление пользователя)

Вход сканера кажется довольно легким для понимания, но по какой-то причине мне сложно провести время с использованием JOptionPane.

Во всяком случае, моя проблема ... Даже после того, как я получаю ответ правильный, я получаю «попытку»

Не могли бы вы сказать мне, что я делаю неправильно?

ответ

0

Вы никогда не обновляете answer.

Изменить этот

int answer3=Integer.parseInt(answer2); 
if (num1+num2==answer3) 

к этому

answer=Integer.parseInt(answer2); 
if (num1+num2==answer) 

Вы также могли бы избавиться от if (num1+num2==answer) проверки путем перемещения окончательного диалогового окна Вашего сообщения вне цикла:

int answer=Integer.parseInt(msg3); 

    while(num1+num2!=answer){ 

     JOptionPane.showMessageDialog(null,"try again"); 
     String answer2=JOptionPane.showInputDialog("wrong. what is " + num1 + "+" + num2 + "?"); 
     answer=Integer.parseInt(answer2); 

    } 
    JOptionPane.showMessageDialog(null,"GREAT job"); 
    System.exit(0); 
+0

@ DaoWen- AH! делает так много смысла. Огромное спасибо!!!! :) :) :) – user3104903