【问题标题】:System.out.println(); won't write in my if statement with stagesSystem.out.println();不会在我的 if 语句中写阶段
【发布时间】:2020-12-02 05:57:47
【问题描述】:

我正在尝试制作一个带有选项和不同场景的基于文本的冒险故事。当我使用if(stage == *) 时,它不会激活 sysout 消息,只会在我的 switch 语句中或在我输入后添加它。

private static int stage = 0;
Scanner in = new Scanner(System.in);
String opt = in.next().toLowerCase();

if(stage == 0) {
    System.out.println("Do you go left or right?");
    switch(opt) {
        case "right":
            System.out.println("Swamp, you go through the thicket and move forward.");
            stage = 10;
            break;
        case "left":
            System.out.println("You find an open field with flowers all over.");
            stage++;
            break;
    }
}

【问题讨论】:

  • stage ==* 不是声明
  • 你是在说“你是向左还是向右?”打印输出不显示,但“沼泽...”或“您找到...”会显示?
  • 这里面有什么功能?我在任何地方都看不到“主要”。
  • 没错,@JohnKugelman,我也需要它来打印它,还是我做错了?
  • 您好 Eric,请不要将解决方案添加到您的问题和/或将“已解决”编辑到标题中。相反,标记答案以将您的问题标记为已解决。如果没有一个答案对您来说足够好并且您确实自己解决了,请提供您自己的答案(以真实答案的形式)并标记该答案。

标签: java if-statement println adventure


【解决方案1】:

您在提出问题之前是从输入中读取的,这就是为什么在您提供输入后会打印您的问题。

String opt = in.next().toLowerCase(); 应该在 System.out.println("Do you go left or right?"); 之后,因为从输入中读取是阻塞的

【讨论】:

  • @EricLjungkrantz 如果这回答了您的问题,请单击复选标记将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 2012-09-24
相关资源
最近更新 更多