2 回答
TA贡献1827条经验 获得超7个赞
这不是您评估布尔值的方式,您只需将该值放在一个if语句中,它将继续 iftrue并拒绝 if ,而且当您可以放置一个块来处理不是的情况时,false也不需要复制该语句:elsetrue
if(subway1.ticketcounter1) {
System.out.println("PRINT SUCCESSFUL, COLLECT YOUR TICKET!");
}
else {
System.out.println("INSEFFICIENT FUNDS, PLEASE ADD MORE");
}
也不要在if语句中包含分号,这是不正确的语法。在此处阅读有关如何使用布尔值的更多信息:https ://codingbat.com/doc/java-if-boolean-logic.html
编辑:
在阅读了你的 Github 代码后,我发现它ticketcounter1确实是一个方法,但它所做的是试图改变它的值,ticketcounter1就像它是一个被引用的对象一样,但是boolean是原始数据类型并且不能被引用,即使它们仍然可以不会工作,因为 Java 是一种按值传递的语言。阅读此处了解更多信息。
public void ticketcounter1(boolean ticketcounter1){
if (credit1 > total1){
ticketcounter1 = true;
}
else {
ticketcounter1 = false;
}
}
public void ticketcounter2(boolean ticketcounter2){
if (credit2 > total2){
ticketcounter2 = true;
}
else {
ticketcounter2= false;
}
就像其他答案所说的那样,您应该返回值boolean而不是尝试更改它:
public boolean ticketcounter1(){
if (credit1 > total1){
return true;
}
else {
return false;
}
}
public boolean ticketcounter2(){
if (credit2 > total2){
return true;
}
else {
return false;
}
}
但总而言之,您的代码在理解该语言的工作原理方面存在根本性缺陷,我建议为初学者挑选一本不错的 Java书籍或做一些介绍性的在线教程。这里是开始您的学习之旅的好地方:https ://docs.oracle.com/javase/tutorial/java/index.html
TA贡献1893条经验 获得超10个赞
你的代码是这样的
public void ticketcounter1(boolean ticketcounter1){
if (credit1 > total1){
ticketcounter1 = true;
}
else {
ticketcounter1 = false;
}
}
public void ticketcounter2(boolean ticketcounter2) {
if (credit2 > total2){
ticketcounter2 = true;
}
else {
ticketcounter2= false;
}
}
应该是这样的。而不是使用变量并通过参数传递它。使用吸气剂。除此之外,您的代码将不会运行,因为subway1.ticketcounter1(true)什么都不提供。它只是改变存储在 Brain.java 中的变量。没有信息被发送到 main。
public boolean ticketcounter1(){
if (credit1 > total1){
return true;
}
else {
return false;
}
}
public boolean ticketcounter2(){
if (credit2 > total2){
return true;
}
else {
return false;
}
}
您可以创建不带参数的函数。我不知道你想做什么?
if (Choice1a == 10){
if(subway1.ticketcounter1()){
System.out.println("PRINT SUCCESSFUL, COLLECT YOUR TICKET!");
}
if(subway1.ticketcounter1()){
System.out.println("INSEFFICIENT FUNDS, PLEASE ADD MORE");
}
}
subway1.ticketcounter1()将给出 true 和 false。不要;在 if 语句条件中使用。;结束声明。查看本指南以了解分号的使用如果您确实想使用;代码应该如下所示
if (Choice1a == 10){
boolean ticketCounter1 = subway1.ticketcounter1();
if(ticketCounter1){
System.out.println("PRINT SUCCESSFUL, COLLECT YOUR TICKET!");
} else {
System.out.println("INSEFFICIENT FUNDS, PLEASE ADD MORE");
}
}
PS 你不需要两个 ifs if-else 在这种情况下会更好
if(condition) {
// Conditions is true
} else {
// Condition is false
}
添加回答
举报