System.out.println不在自定义类的方法中打印

时间:2017-11-30 23:11:50

标签: java class methods printing

我创建了两个.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或其他内容) )似乎没有打印。

1 个答案:

答案 0 :(得分:0)

问题在于你的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()。上述代码将解决您的问题。