2013-06-21 5 views
0

Когда я печатаю то, что хранится внутри строковых переменных b и p, он не отвечает, пока я не нажал клавишу ввода несколько раз.Задержка при вводе ввода при использовании сканера

После этого момента программа выводит только то, что находится внутри оператора else. Единственная строковая переменная, на которую отвечает программа, равна j.

Код:

package legit; 

import java.util.Scanner; 

public class Gamee { 


    public static void main(String args[]){ 

     Scanner sc = new Scanner(System.in); 
     String j = "good, how are you?"; 
     String b = "good"; 
     String p = "bad"; 

     System.out.println("Hello, my name is Julie the Robot"); 

     System.out.println("How Are You?"); 


     if (j.equals(sc.nextLine())) { 
     System.out.println("Im Doing Great!"); 


     }else if (b.equals(sc.nextLine())) {     
     System.out.println("Thats Great! :)"); 


     }else if (p.equals(sc.nextLine())){    
     System.out.println("Thats not good"); 

     }else { 
     System.out.println("I see..."); 
     } 
+1

Каждый 'sc.nextLine()' считывает новый ввод с консоли. Думаю, теперь можно догадаться, что пошло не так. –

ответ

1

Знаете ли вы, что каждый раз, когда вы используете sc.nextLine() вы просите пользователь для ввода нового?

Попробуйте использовать его один раз перед вашим if и сохранить полученный вход в значение, а затем использовать это значение в условиях.