【问题标题】:System.out.println Not Printing in Custom Class's MethodSystem.out.println 不在自定义类的方法中打印
【发布时间】:2017-11-30 23:11:50
【问题描述】:

我创建了两个 .java 文件,一个名为 Ques.java,另一个名为 TBRPGgame.java。这里分别是Ques.javaTBRPGgame.java的内容:

import java.util.Scanner;

class Ques
{
  Scanner numin = new Scanner(System.in);

  String quesText = "";
  String quesAtr1 = "";
  String quesAtr2 = "";
  String quesAtr3 = "";
  String quesAtr4 = "";
  boolean done = false;

  Ques(String qText, String qAtr1, String qAtr2, String qAtr3, String qAtr4)
  {
    quesText = qText;
    quesAtr1 = qAtr1;
    quesAtr2 = qAtr2;
    quesAtr3 = qAtr3;
    quesAtr4 = qAtr4;
  }

  String ask()
  {
    System.out.println(quesText);

    if (numin.nextInt() == 1)
    {
      System.out.println(quesAtr1); return quesAtr1;
    } else if (numin.nextInt() == 2)
    {
      System.out.println(quesAtr2); return quesAtr2;
    } else if (numin.nextInt() == 3)
    {
      System.out.println(quesAtr3); return quesAtr3;
    } else if (numin.nextInt() == 4)
    {
      System.out.println(quesAtr4); return quesAtr4;
    } else
    {
      System.out.println("That is not a valid input. Possible inputs are: 1, 2, 3, 4."); System.out.println(""); return "";
    }
  }
}

import java.util.Scanner;

class TBRPGgame
{
  public static void main(String[] args)
  {
    Ques question1 = new Ques("\n\nOne day, while you were travelling, you visited a city. However, you had only enough time to visit one building before you had to leave the city.\n\nWhich building did you visit?\n1.) I visited the library.\n2.) I visited the tavern.\n3.) I visited the blacksmith.\n4.) I visited the temple.", "kno", "rhe", "str", "fai");
    question1.ask();
  }
}

但是,当 Ques 对象的 ask 方法被执行时,包含在 5 个可能结果中的 System.out.println 代码(输入为 1、2、3、4 或其他)似乎没有正在打印。

【问题讨论】:

  • 您知道每次调用nextInt()时,用户必须输入一个新值,对吧?
  • Questext 必须声明为 public static 才能正确声明。
  • @Andreas Ah.. 我不知道。谢谢。

标签: java class methods printing


【解决方案1】:

问题在于您的 ask() 方法。

String ask()
{
    System.out.println(quesText);

    int input = numin.nextInt();

    if (input == 1)
    {
        System.out.println(quesAtr1); return quesAtr1;
    } else if (input == 2)
    {
        System.out.println(quesAtr2); return quesAtr2;
    } else if (input == 3)
    {
        System.out.println(quesAtr3); return quesAtr3;
    } else if (input == 4)
    {
        System.out.println(quesAtr4); return quesAtr4;
    } else
    {
        System.out.println("That is not a valid input. Possible inputs are: 1, 2, 3, 4."); System.out.println(""); return "";
    }
}

您的代码的问题是您在每个条件检查中都包含了 numin.nextInt()。以上代码将解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-02
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多