1

我想弄清楚的是当用户提出age < 18我希望程序停止时。与下面的“杰克”部分相同的想法如果用户名为杰克,我也希望它停止。

import java.util.Scanner;

class Newbie
{
  public static void main(String[] arg)
  {
    Scanner qk = new Scanner(System.in);
    int age;
    String ans;

    System.out.println("How old are you?");
    age = qk.nextInt();

    if(age < 18)
      System.out.println(age + " is too young!");           

    if(age > 18)
      System.out.println("You can enter. What is your name?");

    Scanner q = new Scanner(System.in);
    ans = q.nextLine();

    if(ans.equals("Jack"))
    System.out.println("Jack, you are not allowed to use this program.");
  }
}
4

6 回答 6

2

您可以写入return;以终止当前方法的执行。

于 2012-11-18T20:55:28.880 回答
2

只需使用System.exit(0)在您所在的位置停止程序, return;只需终止该方法。

于 2012-11-18T20:59:07.210 回答
1

考虑使用一个boolean字段来跟踪用户是否被授权使用该程序。

例子:

import java.util.Scanner;

class Newbie
{
    public static void main(String[] arg)
    {
      boolean authorized = true;
      Scanner qk = new Scanner(System.in);
      int Age;
      String ans;

      System.out.println("How old are you?");
      Age=qk.nextInt();
      in.nextLine(); // clear newline char from the buffer
      if(Age < 18) {
        System.out.println ( Age +" is too young! " ); 
        authorized = false;         
      }
      else { // else statement fixes logic error
        System.out.println ( " You can enter. What is your name ? " );
        ans=qk.nextLine();
        if (ans.equals("Jack")) {
          System.out.println ( "Jack, you are not allowed to use this program " );
          authorized = false;         
        }
      }
      if(authorized) {
        // Do program stuff here
      }
    }

}
于 2012-11-18T21:02:16.707 回答
0

放一个“返回”;在 if ( 但是把你想在 if 后面的东西放在花括号 {} 之后

因为你在主函数内部,所以 return 只会退出函数,然后退出程序

于 2012-11-18T20:57:02.333 回答
0

如果您希望它在用户输入时停止"Jack",请执行以下操作:

if (ans.equals("Jack")) {
    System.out.println ( "Jack, you are not allowed to use this program " );
    System.exit();
}
于 2012-11-18T20:57:39.973 回答
0

在这种情况下退出程序执行return工作,因为您只有一个非常简单的main设置。如果您想独立于您使用的方法停止执行,请使用以下命令。

if(age < 18)
  System.exit(0);

在你的情况下,它会是这样的。

if(age < 18){
  System.out.println(age +" is too young!");
  System.exit(0);
}

除此之外,您的代码中存在逻辑错误。如果用户输入18会发生什么?他/她仍然被允许进入,但没有任何东西可以告诉他/她。请改用此条件。

if(age < 18){
  System.out.println(age +" is too young!");
  System.exit(0);
} else {
  System.out.println("You can enter. What is your name?");
}
于 2012-11-18T20:58:39.567 回答