2016-09-15 2 views
0

私が問題を抱えていると思うのは、スキャナがifステートメントで私をブロックしていますが、わかりません。java.util.Scannerがifステートメントで私をブロックしています

私が達成しようとしているのは、私が名前と価格を関連付けることができるプログラムですが、ここではそれほど関係ありません。ここでは、コードは次のようになります。

import java.util.Scanner; 
public class Program { 
    public static void main(String[] args) { 

     Scanner stdIn = new Scanner(System.in); 



     //Candies 

     String red = ("red"); 
     String mi = ("mi"); 
     String name; 
     String name2; 

     //Prices 

     double rH; 
     double mNI; 
     double enterP; 

     //Other 

     String dollar = ("$"); 


     //Actual Output 

     System.out.println("Welcome to the store"); 
     System.out.println("---------------------------------"); 

     System.out.println('\t'); 
     System.out.print("Please enter the name of the first item: "); 
     name = stdIn.nextLine(); 



     if(name.equalsIgnoreCase ("red") || name.equalsIgnoreCase ("redd")){ 

      System.out.println("Please enter price of Red:"); 

     } 


     enterP = stdIn.nextDouble(); 

     if(enterP >= 0){ 

      System.out.println("Please enter the name of the second item:"); 

    } 

     name2 = stdIn.nextLine(); 
     if(name2.equalsIgnoreCase("mi") || name2.equalsIgnoreCase("mii") || name2.equalsIgnoreCase("miii") || name2.equalsIgnoreCase("miiiii")){ 

      System.out.println("Enter the number of Mi to purchase:"); 

    } 

     else if(enterP <= 0){ 
      System.out.println("Error: Please re-enter input"); 

     } 
     stdIn.close(); 

    } 
} 

出力は、ここでちょっと奇妙です:

Works fine

Works fine

Stuck!

私はScanner.close(とスキャナをクローズしようとしました) ;最後に、stdIn.closeを使ってスキャナの変数を閉じようとしましたが、何も働かなかったので、私は愚かな間違いをしています。

+1

なぜこのタグが付けられていますか? – nhouser9

+0

申し訳ありません私は間違いを作った –

答えて

0

あなたのプログラムが実行を終了し

name2 = stdIn.nextLine();  

後に追加してみてくださいstdIn.next();


の代わりに、名前= stdIn.nextLine();

+0

Yesssssssssssss ....本当にありがとう、愚かな間違いだった –

0

ブロックされていないため、プログラムの実行が終了しました。

2番目のキャンディーの行を読むのを忘れてしまったようです。

0

2番目のキャンディーは何も読んでいません。

正しく表示されていれば、2行目のキャンディー名を入力するように行を印刷しますが、読み取ることはできません。

0

価格を請求した後にstdIn.nextLine()を使用したことはありません。 = 名:

二ぎっしりについては、そのコストは再びあなたが使用する必要がある値

を読む必要がある -

if(enterP >= 0){ 

     System.out.println("Please enter the name of the second Candy:"); 

} 
+0

2番目の名前をname2に変更しようとしても同じ問題が発生しました –

関連する問題