Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如果触发“Else”语句,如何自动重新启动控制台程序_Java - Fatal编程技术网

Java:如果触发“Else”语句,如何自动重新启动控制台程序

Java:如果触发“Else”语句,如何自动重新启动控制台程序,java,Java,我正在制作一个简单的程序,在你启动程序之前要求输入密码。当我的用户输入错误的密码时,他们会收到拒绝访问的警告。我使用If/Else语句来实现这一点。如果他们输入了错误的密码,我希望能够重新运行我的程序,因为如果他们输入了错误的密码,他们将无法再次在控制台中键入 这是我的工作区: import java.util.Scanner; public class PasswordProtected { public static void main (String args[]){

我正在制作一个简单的程序,在你启动程序之前要求输入密码。当我的用户输入错误的密码时,他们会收到拒绝访问的警告。我使用If/Else语句来实现这一点。如果他们输入了错误的密码,我希望能够重新运行我的程序,因为如果他们输入了错误的密码,他们将无法再次在控制台中键入

这是我的工作区:

import java.util.Scanner;

public class PasswordProtected {
    public static void main (String args[]){
        Scanner Password = new Scanner (System.in);
        String mainpassword, userInput;
        mainpassword = ("Jacob");
        System.out.println("Please enter the password to continue.");
        userInput = Password.nextLine();
        System.out.println("Verifying Password");
        if (userInput.equals(mainpassword)){
            System.out.println("Access Granted");
            System.out.println("Welcome!");
        }else{
            System.out.println("Access Denied");
        }
    }

}
我确实意识到我可以一次又一次地复制像这样的东西,然而,这是对空间的浪费,并不是无限的

System.out.println("Please enter the password to continue.");
            userInput = Password.nextLine();
            System.out.println("Verifying Password");
            if (userInput.equals(mainpassword)){
                System.out.println("Access Granted");
                System.out.println("Welcome!");
            }else{
                System.out.println("Access Denied");
            }
        }
请注意,我是编程新手,可能需要一些额外的帮助


如果触发了Else语句,如何在不再次手动单击运行按钮的情况下完全重新启动程序?

您不需要重新启动程序。如果密码不正确,请使用循环再次询问密码。例如,在带有语句的半伪代码中:

userInput = input.nextLine();
while ( !userInput.equals(mainpassword) ){
    userInput = input.nextLine();
}

您不需要重新启动程序。如果密码不正确,请使用循环再次询问密码。例如,在带有语句的半伪代码中:

userInput = input.nextLine();
while ( !userInput.equals(mainpassword) ){
    userInput = input.nextLine();
}
试试whiletrue循环

试试whiletrue循环


如果您仍然想重新启动任何Java程序,那么可以从代码中的任何其他地方调用main方法。您可以调用这个方法,传入任何必要的字符串参数。使用线程执行此操作,如下所示

Thread t = new Thread() {
     public void run() {             
         String[] args = { };
         PasswordProtected.main(args);     
     }  
};  
t.start(); 
如果要在新流程中重新启动应用程序,可以使用

Runtime.getRuntime().exec(...);

如果您仍然想重新启动任何Java程序,那么可以从代码中的任何其他地方调用main方法。您可以调用这个方法,传入任何必要的字符串参数。使用线程执行此操作,如下所示

Thread t = new Thread() {
     public void run() {             
         String[] args = { };
         PasswordProtected.main(args);     
     }  
};  
t.start(); 
如果要在新流程中重新启动应用程序,可以使用

Runtime.getRuntime().exec(...);

你有没有听说过循环的时间、时间等。?只需在代码上循环,直到输入正确,然后继续程序,可能会尝试最多次。我忘了说我是编程新手。我会相应地编辑我的问题。或者给他们输入密码或退出选项,但正如@dunni所说的那样!验证{GetPassword}基本上是一种方法。你听说过循环、while等吗。?只需在代码上循环,直到输入正确,然后继续程序,可能会尝试最多次。我忘了说我是编程新手。我会相应地编辑我的问题。或者给他们输入密码或退出选项,但正如@dunni所说的那样!验证{GetPassword}基本上是一种方法。我尝试了每个人的响应,可能不正确,但是您的响应有效。我意识到在此之后,我无法让我的用户输入任何其他信息。为什么?每当我尝试按enter键输入新信息时,都会弹出关于再次创建帐户的相同代码;无论哪种方式,它都越来越让人困惑。老实说,我甚至不理解自己的代码。我很可能会从头开始重建,或者放弃这个项目。我已经尝试了所有人的回复,可能是错误的,但是你的回复起了作用。我已经意识到,在此之后,我无法让我的用户输入任何其他信息。为什么?每当我尝试按enter键输入新信息时,都会弹出关于再次创建帐户的相同代码;无论哪种方式,它都越来越让人困惑。老实说,我甚至不理解自己的代码。我很可能会从头开始重建,或者放弃这个项目。但更好的选择是分析他们的输入是否为空,然后用do代替do…而他们的输入不是空的。。。然后告诉他们,如果他们想退出,只需按enter键,而不必输入任何其他内容。。。看这个。但更好的选择是分析他们的输入是否为空,然后用do代替do…而他们的输入不是空的。。。然后告诉他们,如果他们想退出,只需按enter键,而不必输入任何其他内容。。。看见