Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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 如何根据用户输入运行特定的代码块?_Java - Fatal编程技术网

Java 如何根据用户输入运行特定的代码块?

Java 如何根据用户输入运行特定的代码块?,java,Java,对于第二个选择部分,用户输入true或false。如果他们键入“true”,则会发生一件事,如果他们键入“false”,则会发生另一件事。这部分很好 我的问题在于第三选择部分。我希望第二选择部分发生的同样的事情发生,但我也希望第二选择部分能够影响它。例如,如果用户同时为board和Steam键入“true”,则会发生以下情况: if(flee == true ) { System.out.println("As you try to flee the Destroyer opens fire a

对于第二个选择部分,用户输入true或false。如果他们键入“true”,则会发生一件事,如果他们键入“false”,则会发生另一件事。这部分很好

我的问题在于第三选择部分。我希望第二选择部分发生的同样的事情发生,但我也希望第二选择部分能够影响它。例如,如果用户同时为board和Steam键入“true”,则会发生以下情况:

if(flee == true ) {
System.out.println("As you try to flee the Destroyer opens fire and you barely escape intact.");
System.out.println("This is the current level of your most vital systems: ");
System.out.println("Shield Level: 0%");
System.out.println("Ammunition Level: 0%");
System.out.println("Fuel Level: 5%");
System.out.println("Oxygen Level: 10%"); 
System.out.println("After your close call you go to the nearest heavy repair depot.");
if(board = true) {
System.out.println("Now repairing shield");
    for (Shield = 0; Shield <= 100; Shield += 50) {
        System.out.println(Shield + "%");
    }
    System.out.println("Shields repaired");
    System.out.println("Now replenishing ammunition");
    for (Ammunition = 0; Ammunition <= 100; Ammunition += 50) {
        System.out.println(Ammunition + "%");
    }
    System.out.println("Ammunition replenished");
    System.out.println("Now refueling");
    for (Fuel = 5; Fuel <= 100; Fuel += 5) {
        System.out.println(Fuel + "%");
    }
    System.out.println("Fueling complete");
    System.out.println("Now replenishing oxygen levels");
    for (Oxygen = 10; Oxygen <= 100; Oxygen += 10) {
        System.out.println(Oxygen + "%");
    }
    System.out.println("Oxygen replenished");
    }
if(逃逸==true){
println(“当你试图逃离时,驱逐舰开火,你几乎没有完好无损地逃脱。”);
println(“这是您最重要系统的当前级别:”;
System.out.println(“屏蔽级别:0%”);
系统输出打印项次(“弹药等级:0%”);
系统输出打印项次(“燃油油位:5%”);
System.out.println(“氧气水平:10%”);
System.out.println(“在你的紧急呼叫后,你去最近的大修厂。”);
if(board=true){
System.out.println(“正在修复屏蔽”);

对于(Shield=0;Shield欢迎编程

在Java中,
=
符号或运算符用于赋值,这意味着
=
右侧的内容将保存到左侧的内容

您需要的符号是
=
=
符号是一个比较符号,主要用于布尔值(包含
true
false
的变量)

根据你的评论,我想说你现在应该简单地避免记住这一点,用他们自己的代码块来封装登机后的部件。这样,只有当玩家决定登机时,你才会执行逃跑检查

例如:

// Prompt user to see if they want to board, capture input.
  if (board) {
    adventurePostBoarding();
  }
并在下面定义您的方法:

private final void adventurePostBoarding() {
  // TODO code here
}

将来,请记住使用
=
比较
true
false
值,而不要使用
=

您的
if
语句无法按预期的方式工作。让我们举一个例子来说明原因:

if(board = true & board != false)
这有许多问题:

  • 您不需要显式地与
    true
    false
    进行比较。这样做被认为是不好的风格。
    if(board)
    完全等同于
    if(board==true)
  • board=true
    是赋值,而不是比较。事实上,您在好几个地方都犯了这个错误。这是您的
    if
    语句不能按预期工作的主要原因之一:
    if(board=true)
    不可能为false,因此
    else
    语句不可能运行。请仔细检查您的代码,以了解您是否混淆了
    =
    =
    (有几种情况)
  • if(board==true&&board!=false)
    是多余的,可能表示对
    布尔值如何工作的误解。if
    (board==true)
    ,那么当然
    board!=false
    。想想如果
    board==true&&board==false
    ,这意味着什么;在什么条件下可能是真的?请记住,根据定义,
    boolean
    值要么是
    true
    要么是false(但不是两者都是,当然不是第三个值);只有两种可能的选择

  • 我肯定会鼓励您回顾一下Java中比较的工作原理,并了解一下。您尤其希望了解如何以及在何处设置断点(即IDE将暂停执行并允许您检查程序状态的点),以及如何单步执行代码(即,一次运行一行程序,以便查看每行代码的效果)使用调试器。

    您需要提供更多关于您尝试执行的操作的信息。这是一个令人痛苦的模糊信息。您所要求的内容确实不清楚,但请注意,您提供了大量代码,没有解释,也没有试图将其简化为a的迹象。如果(board=true),我会说
    看起来很诡异-您是否知道
    =
    是赋值运算符,而
    =
    用于相等性测试?当我运行它时,正确部分工作,但错误部分不工作。此外,do you board部分工作正常。
    如果(board=true&board!=false)
    --这段代码中有很多错误,令人印象深刻。很抱歉,这是一段全新的代码,非常感谢您。我按照您的建议做了,现在效果很好,现在我将在将来记住=和==之间的区别。如果解释一下为什么这会解决问题,这个答案将大大改进,特别是因为OP是编程的新手。例如,它确实从技术上解决了主要问题(OP混淆了
    =
    =
    ),但这并不能解释这就是问题所在。谢谢你的建议!我将编辑我的答案以包括这一点。
    if(board = true & board != false)