ユーザーがパスワードを入力してディレクトリシステムを使用する簡単なプログラムを作成しています。
ユーザーが詳細を入力しないことを選択した場合は、ログアウトしてから、再度ログインするオプションを提供します。これをループで実行しようとしましたが (以下のコードを参照)、passQ vairable を 0 にリセットすると、ユーザーがログアウトしてループ内の最初のステートメントに戻ることを期待していましたが、そうはなりません。
誰でも私を正しい方向に向けることができますか?
ブレークを追加してみました。(以下のコメントアウト)しかし、これでプログラムは終了しました。
ps パスワードを管理するこの方法は実際には安全ではないことを知っています。将来、このようなループを他のことに使用したいかもしれないので、ただ遊んでいました。
package directory;
import java.util.ArrayList;
import java.util.Scanner;
public class Directory {
/**
* @param args the command line arguments
*/
//-------------//
//Main Meathod //
//-------------//
public static void main (String[] args)
{
//------------------//
// Define Variables //
//------------------//
String question = "Y";
String passQ = "0";
String password = "password";
Scanner passCheck = new Scanner(System.in);
System.out.println("Welcome to Chris Headleands Tel Directory, Enter Password to access sytems"); //1 and 0 used for yes and no
question = passCheck.nextLine(); // Next line used to decide if the user wants to enter a persons details
while (passQ != password)
{
if (question.equalsIgnoreCase("password")) //Do they want to ender a person? 1 == yes
{
//Create a new array list for the people created
ArrayList<TelEntry> directory = new ArrayList<TelEntry>();
//Check if the user wants to create a new person
Scanner checker = new Scanner(System.in);
System.out.println("would you like to add a directory entry(1 = Yes / 0 = NO!)"); //1 and 0 used for yes and no
question = checker.nextLine(); // Next line used to decide if the user wants to enter a persons details
if (question.equalsIgnoreCase("y")) //Do they want to ender a person? 1 == yes
{
while (question.equalsIgnoreCase("y")) // Add a loop so multiple people can be added
{
String name; // First name
String telNo; // Last name
// Create scanner for entering details
Scanner keybd = new Scanner(System.in);
//----------------------------------//
//User to enter details via keyboard//
//----------------------------------//
// Ask user to set first name
System.out.println("Enter their first name");
name = keybd.nextLine();
// Ask user to set last name
System.out.println("Enter their last name");
telNo = keybd.nextLine();
// -------------------------------------//
//Add the new person to personlist array//
//--------------------------------------//
directory.add(new TelEntry(name, telNo));
//-----------------------------------------------------------------------------//
// Check to see if the user wants to add another person, if Y then re-run loop //
//-----------------------------------------------------------------------------//
Scanner newChecker = new Scanner(System.in);
System.out.print("would you like to enter another person? (1 = Yes / 0 = NO!)");
question = newChecker.nextLine();
}
}
//--------------------------------------------------------------//
// User doesnt want to add any people to the persontest program //
//--------------------------------------------------------------//
if (question.equalsIgnoreCase("testmode"))
{
System.out.println("you are now in test mode")
}
else
{ // Provide the user with a witty retort
System.out.println("if your not going to use me for what I was designed to do, bugger off and bother someone else!");
System.out.println("Logging out");
passQ = "0"; // Reset password loop
// break;
}
}
}
}
}