2 回答

TA貢獻1827條經驗 獲得超8個贊
這不是您評估布爾值的方式,您只需將該值放在一個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
}
添加回答
舉報