2016-09-30 2 views
1

Мне нужно написать проверку пароля, которая гарантирует правильный пароль.Password Checker в java с do while

Во-первых, я предложит пользователю ввести пароль

Во-вторых, я предложит пользователю повторно ввести пароль

в-третьих, мне нужно проверить, что пароли идентичны

Но это шаги необходимо повторите с 1 по 3, пока пароль не будет правильно введен дважды.

Вот мой код. Но я не могу понять логику повторения с 1 по 3

import java.util.*; 

public class Lab4Exercise1{ 
    public static void main(String[] args){ 

     System.out.print("Enter Your password"); 
     Scanner sc = new Scanner(System.in); 
     double password = sc.nextDouble; 
     double reentered = sc.nextDouble; 

     do { 

     }while (password==reentered); 
    } 
} 
+0

Во-первых, вы уверены, что вы хотите, чтобы ваши пароли, чтобы быть 'Double's? То есть цифры, такие как '2.71828'? Во-вторых, рассмотрите возможность ввода пароля в ваш цикл 'do'. В-третьих, измените '==' на '! =' (Вы хотите зацикливать, пока они не равны *). – dcsohl

+0

Предлагается использовать метод Console.readPassword() istead для использования System.in. – olsli

+0

Обычно вы должны использовать цикл for, когда вам нужно повторять что-то определенное количество раз, и делать то же самое, когда вам безусловно нужно что-то делать один раз, а затем повторять по мере необходимости. Вам нужно продолжать запрашивать пароль до тех пор, пока они не совпадут, или вам нужен цикл while для обработки обоих запросов пароля? – bss36504

ответ

0

Попробуйте

import java.util.*; 

public class Lab4Exercise1{ 
public static void main(String[] args){ 

    Scanner sc = new Scanner(System.in); 
    double password; 
    double reentered; 
    do { 
     System.out.println("(Re)Enter Password:"); 
     password = sc.nextDouble(); 
     System.out.println("Confirm Password:"); 
     reentered = sc.nextDouble(); 
    } while (password != reentered); 

    } 
} 
+0

Это то, что я ищу, но оно дает ошибку: «класс Lab4Exercise1 является общедоступным, должен быть объявлен в файле с именем Lab4Exercise1.java public class Lab4Exercise1 {" –

+0

@ EmrahSarıboz Добро пожаловать в мир Java! ;-) – dganesh2002

+1

@ EmrahSarıboz Затем используйте эту информацию, которая дает вам сообщение об ошибке. Помните, что общедоступные классы верхнего уровня должны быть помещены в файлы .java с тем же именем, что и открытый класс, например 'public class Foo {}' необходимо поместить в файл 'Foo.java'. Поэтому переименуйте свой класс в соответствие с именем вашего файла или переименуйте свой файл в соответствии с именем класса. – Pshemo

0

Вы можете использовать нижеследующий код, который соответствует вашим требованиям. Могут быть синтаксические ошибки, поскольку я не использовал eclipse.

import java.util.*; 

public class Lab4Exercise1{ 
    public static void main(String[] args){ 
     Scanner sc = new Scanner(System.in); 
     double password, reentered; 
     do { 
      System.out.println("Enter Your password"); 
      password = sc.nextDouble(); 
      double reentered = sc.nextDouble(); 
      if(!password.equals(reentered)) { 
       System.out.println("Passwords do not match. Please retry"); 
      } else { 
       break; 
      } 
     }while (True); 
    } 
}