2017-03-24 7 views
-4

私のコードの目的は、ピンを入力することです、そして、それが正しいかどうかをチェックします。そうでない場合、質問はループします。 何らかの理由で、私のコードが正しくループせず、多くのコードに下線が引かれています。具体的にwhileループ自体と第二のJOptionPane右がループを終了その;なぜ私のwhileループが動作しないのか分かりません(Java)..?

// package loop; 

import javax.swing.JOptionPane; 


public class loop { 


public static void main(String[] args) { 
    int correctPin = 3333; 
    int count = 0; 
    String maybePin = JOptionPane.showInputDialog("Please enter the PIN"); 
    int sMaybePin = Integer.parseInt(maybePin); 
    while(correctPin != sMaybePin);{ 
     maybePin = JOptionPane.showInputDialog("Please enter the PIN"); 

     count = count-1; 
} 
    JOptionPane.showMessageDialog(null, count); 
} 
} 
+1

に変数sMaybePinの値を設定し、正しいセミコロンを削除します。 'しばらく(!correctPin = sMaybePin){' – Ain

+0

はまた、私は '信じるmaybePin =のJOptionPane .showInputDialog( "PINを入力してください"); whileループが間違っています。代わりにsMaybePinに割り当てる必要があります。 – jrahhali

+0

あなたのもう一つの本当の問題は、文字列maybePinを変更するとint値が解析されたEARLIERに影響しないので、sMaybePinはその値を決して変更しないということです。あなたの名前だけでなく、ここに混乱を加えてください! – GhostCat

答えて

1
while(correctPin != sMaybePin); <-- 

ルック。あなたはそれを削除する必要があります。

+0

あなたは彼が比較している値に気づいたのですか?彼はint値を再解析するために行方不明です! – GhostCat

1

検査する変数であるsMabyPinを更新することはありません。あなたが@ジョンと@ANSが何をしたら、あなたは無限ループにこだまれるでしょう。

+0

あなたはパズルを解く最初の人だったようです:-) p1もそうです。あなたの答えは現在、平凡なコメントのように読み込まれています。 – GhostCat

1

; while文の後に、入力vlaueとOT作品

public static void main(String[] args) { 
    int correctPin = 3333; 
    int count = 0; 
    String maybePin = JOptionPane.showInputDialog("Please enter the PIN"); 
    int sMaybePin = Integer.parseInt(maybePin); 
    while(correctPin != sMaybePin){ 
     sMaybePin = Integer.parseInt(JOptionPane.showInputDialog("Please enter the PIN")); 

     count = count-1; 
    } 
    JOptionPane.showMessageDialog(null, count); 
} 
+0

hmmこれは動作しません sMaybeがint値なのでmaybePinを変更できません JOptionPaneでintを使用できません – helpplease

+0

JOptionPaneはStringを返します。このStringをInteger.parseIntでintにキャストします。 – Markus

+0

あなたはint値を再解析する必要があると考えています!それのためのP1。 – GhostCat

関連する問題