Java 如何根据用户输入运行特定的代码块?
对于第二个选择部分,用户输入true或false。如果他们键入“true”,则会发生一件事,如果他们键入“false”,则会发生另一件事。这部分很好 我的问题在于第三选择部分。我希望第二选择部分发生的同样的事情发生,但我也希望第二选择部分能够影响它。例如,如果用户同时为board和Steam键入“true”,则会发生以下情况: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
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)