2017-04-12 6 views
0

プロジェクト用の銀行のマシンコードを作成中です。ログインするたびにエラーが発生します。それがこれですやっているコードの一部:何が起こっているループに巻き込まれていますか?

if(pincheck == pin){ 
       loggedin = true; 
       pincheck = 0; 
       do{ 
        System.out.println("Welcome, " + name); 
        System.out.println(""); 
        System.out.println("Your account balance is $" + balance); 
        System.out.println(""); 
        System.out.println("Press 1 to deposit funds"); 
        System.out.println("Press 2 to withdraw funds"); 
        System.out.println("Press 3 to log out"); 
        System.out.println(""); 
        options = in.nextInt(); 

        switch (options) { 
         case 1: System.out.println("How much would you like to deposit?");   // deposit 
           deposit = in.nextFloat(); 

           balance = balance + deposit; 
           deposit = 0; 

           System.out.println("You have deposited funds into your account."); // withdraw 
           System.out.println(""); 
          break; 
         case 2: System.out.println("How much would you like to withdraw?"); 
           withdraw = in.nextFloat(); 

           balance = balance - withdraw; 
           withdraw = 0; 

           System.out.println("You have removed funds from your account."); 
           System.out.println(""); 
          break; 
         case 3: System.out.println("Logging out...");        // log out 
           System.out.println(""); 
           loggedin = false; 
          break; 
         default:System.out.println("Please enter a valid number");     // Invalid number 
          break; 
        } 
       }while(loggedin = true); 

はあなたの中にログインすることですpincheckとして、数に配置する必要があり、それはそれがログに記録されますが存在するピンと等しい場合私はログインすることができますが、3を押してログアウトすると、ログアウトしてプリントを歓迎し、すべてが再び始まります。誰かが私が立ち往生しているところを指摘できますか?

+2

あなたが知っています代入 '='と等価 '=='の比較の違いは? –

+0

私はちょうど私が私がすでに知っていたことを教えてくれるだろうと思っていたことをgoogled場合、私は比較的新しい、これと同じくらい複雑です。しかし、助けてくれてありがとう、私はコードを修正し、それは今働いている! –

答えて

2

=が代入演算子であるので、あなたは、単に常にtrueされる(すなわち、loggedin=true設定)値を割り当てる(あなたがtrueに設定されているため)。

だから、あなたはループの中で、実際の状態を確認していないので、あなたは(条件式を評価するために使用)==演算子を使用する以下のようにwhile条件を修正する必要があります。

while(loggedin == true); //use == for condition evaluation 
関連する問題