2015-01-27 2 views
0

방금 ​​Java 사용을 시작했고 Do/While 루프 및 부울을 학습했습니다. 그러나 nexInt와 함께 오류가 계속 발생합니다. 내가 뭘하고 있는지 전혀 모르겠다. :) 다음은이 프로그램이 완료해야 할 과제입니다 : "암호 변수를 설정하고이 변수에 암호를 지정하십시오 프로그램을 실행하고 유효하지 않은 암호를 입력하여 부울 논리가 올바른지 확인하십시오. 암호를 입력하면 프로그램에서 입력을 요구하지 않아야합니다. " 모든in.nextInt() Do While/Boolean Loop 문제

import java.util.Scanner; 
import static java.lang.System.*; 

class PasswordCheck 
{ 
    private String password; 

    public PasswordCheck() 
    { 
     password = "ilovecats"; 
    } 

    public void check() 
    { 
     Scanner keyboard = new Scanner(System.in); 
     do 
     { 
      int p; 
      System.out.println("Enter the password :: "); 
      p = in.nextInt(); 
      System.out.println("INVALID"); 
     }while (password!=p); 
     System.out.println("VALID"); 
    } 
} 
+0

암호를'int'로 정의하지 말고'String'과 비교해보십시오. 또한,'String' 비교는'=='이나'! ='로하지 않습니다. 또한 입력 내용을 확인하기 전에 "Invalid"를 인쇄하지 마십시오. – RealSkeptic

+0

'p'는 루프 내부에서 선언되었지만 외부에서 사용하려고합니다. - 루프 종료 코드로서 – baju

답변

0

먼저 in에서 읽으려고 다음 keyboard로 스캐너를 정의하고있다 : 여기

는 내가 지금까지 가지고있는 것입니다. 둘째, String 대신 int을 읽는 중입니다.

세 번째로 문자열 비교는 Java에서 .equals으로 수행됩니다.

import java.util.Scanner; 
import static java.lang.System.*; 

class PasswordCheck 
{ 
    private static String password = "ilovecats"; 

    public static void main(String[] args) 
    { 
     Scanner in = new Scanner(System.in); 
     while (true) 
     { 
      String p; 
      System.out.println("Enter the password :: "); 
      p = in.next(); 
      if (!password.equals(p)) { 
       System.out.println("INVALID"); 
       continue; 
      } 
      break; 
     } 
     System.out.println("VALID"); 
    } 
}