2016-11-04 7 views
-1

私はこれを遭遇していないようですが、この質問は何百万回も前に尋ねられていません。私はdo whileループを通してプログラムを再実行することに問題があります。これは非常に便利なコードですが、理解できません。何か助けていただければ幸いです!コードのこの部分だけで、この質問をする目的のため..ですdo whileループを使用してユーザー入力プログラムを実行してください

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

Scanner scan = new Scanner(System.in); 
String s1 = scan.nextLine(); 

    do 
    { 
     System.out.println("Do you want to continue? Y/N"); 
    } 

    while(s1=="Y"); 
} 
} 
+2

do-whileループ内で 's1 = scan.nextLine()'を移動します –

+0

投稿する前にStackoverflowを検索しましたか? – Fallenreaper

+0

はい、私はこのように簡単に表現された解決策を見つけることができませんでした –

答えて

1

あなたはこれをしたい:

String s1 = "Y"; 
do 
{ 
    System.out.println("Do you want to continue? Y/N"); 
    s1 = scan.nextLine(); 
}while(s1.equalsIgnoreCase("Y")); 

あなたが使用する必要があります==を使用してString年代を比較する必要はありません.equals()または.equalsIgnoreCase() ...

また、ループのたびにユーザーに入力を求める必要があります。

+0

毎回プロンプトを出すようにコードを作成するにはどうすればよいですか?それは私が探していた結果だった、ありがとう。 –

1

s1は決して再割り当てされないので、あなたのコードは無限に実行されていると推測します。 String s1 = scan.nextLine();do{}ブロックに移動してみてください。

あなたはあなただけの質問の後に行う内scan.nextlineを入れて持っていることを行う必要がある場合、質問 後応答の行を取得する必要があります
String s1 = "Y"; 
do 
{ 
    System.out.println("Do you want to continue? Y/N"); 
    s1 = scan.nextLine(); 
} 

while(s1=="Y"); 
0

...そう

public static void main(String[]args) 
{ 

Scanner scan = new Scanner(System.in); 
String s1 =""; 
    do 
    { 
     System.out.println("Do you want to continue? Y/N");//Print 
     s1 =scan.nextLine();//Read 

    } 

    while(s1=="Y"); 

} }

関連する問題