2017-11-23 5 views
1

これは簡単に修正できないことが分かっていますが、私は1時間それを戦ってきました。私は "quit"と入力してプロセスのファイルに書き込むまで、ユーザーからの単語を取得し続ける必要があります。しかし、ここに問題がある、それは "単語を入力:"が表示されますが、それをタイプして、それを入力してください、私は何かを書くまで2番目の時間を使用し、2番目を使用します。プリンターの作者が私にループを2回入力して

//@Author: Tyler Cage 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Scanner; 
public class week12Program1 { 
    public static void main(String[] args) throws FileNotFoundException, IOException{ 
     //declaring the writer and initlizing it 
     FileOutputStream fileByteStream = new FileOutputStream("C:/Users/tyl3r/Desktop/test.txt"); 
     PrintWriter outFS = new PrintWriter(fileByteStream); 
     Scanner scnr = new Scanner(System.in); 
     //declainrg ints 
     int i = 0; 

     //open file and print 
     while(i<1){ 
     System.out.println("Enter word: "); 
     outFS.println(scnr.next()); 
     outFS.flush(); 
      if(scnr.next().equalsIgnoreCase("quit")){ 
       System.out.println("Shutting down..."); 
       fileByteStream.close(); 
       i++; 
     } 
     } 

    } 
} 
+2

あなたが二回 ')(' scnr.next呼び出している:あなたはそれだけで入力を保存している場合の条件で変数の内容を確認するために、変数を宣言する必要がある問題を解決するために

。だから、何かを二度入力しなければなりません。以前に入力したテキストをifステートメントで使用する場合は、変数に保存してその変数を使用する必要があります。 Javaでは、 'scnr.next()'を呼び出すことはできませんが、実際にはそれを意味するものではなく、そのメソッド呼び出しの最終結果が必要です。 –

+0

それと同じように私は完全にそれを逃した。どうもありがとうございます。 –

答えて

1

コードのこのセクションの問題:あなたは言葉に期待される結果を得るために別の時間を入力する必要があるので、実際にあなたが入力を2回を読んでいる

while(i<1){ 
     System.out.println("Enter word: "); 
     outFS.println(scnr.next()); // first time scanning input 
     outFS.flush(); 
     if(scnr.next().equalsIgnoreCase("quit")){ // second time scanning input 
      System.out.println("Shutting down..."); 
      fileByteStream.close(); 
      i++; 
} 

while(i<1){ 
     System.out.println("Enter word: "); 
     String word = scnr.next(); 
     outFS.println(word); 
     outFS.flush(); 
     if(word.equalsIgnoreCase("quit")){ 
       System.out.println("Shutting down..."); 
       fileByteStream.close(); 
       i++; 
} 
関連する問題