将布尔值与 set 和 get 方法一起使用

总而言之,我正在为地铁票务系统制作一个程序。我正在为它使用 set 和 get 方法,当涉及到布尔值时(因为我需要验证这个人输入了足够的钱来买票)我应该如何放入主类(它在大脑中定义)使用 set 方法和 if 语句。这里是整个代码的一小部分,其余部分在 github ( https://github.com/alexxei4/subwayticket ) 上。main 基本上是将用于与用户交互的类,而 brain 是定义许多动作的地方。感谢所有帮助,谢谢。


 if (Choice1a == 10){

            if(subway1.ticketcounter1(true);){

                System.out.println("PRINT SUCCESSFUL, COLLECT YOUR TICKET!");

            }

            if(subway1.ticketcounter1(false);){

                System.out.println("INSEFFICIENT FUNDS, PLEASE ADD MORE");

            }


开心每一天1111
浏览 139回答 2
2回答

慕仙森

这不是您评估布尔值的方式,您只需将该值放在一个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

白猪掌柜的

你的代码是这样的 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}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java