2017-11-23 2 views
1

이 문제는 쉽게 해결할 수 없다는 것을 알고 있지만 한 시간 동안 계속해서 논쟁 중입니다. 사용자가 "quit"을 입력하고 프로세스에서 파일에 쓸 때까지 단어를 계속 가져와야합니다. 그러나 여기에 문제가 있습니다, 그것은 "Enter Word :"와 함께 나옵니다. 그러나 입력하고 두드리면 입력하십시오. 나는 두 번째 무언가를 쓸 때까지 기다렸다가 두 번째 것을 사용합니다.프린터 작성자가 루프를 한 번 두 번 반복 입력합니다.

//@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

:

당신은 거기에 입력을 저장 한 다음 경우 조건에 변수 내용을 확인하기 위해 변수를 선언해야하는 문제를 해결합니다. 그래서 두 번 뭔가를 입력해야합니다. 이전에 입력 한 텍스트를 if 문에 사용하려면 변수에 저장하고 해당 변수를 사용해야합니다. 자바는 당신이'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++; 
} 

. 당신은()`두 번 scnr.next`호출

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++; 
} 
관련 문제