java - 如何将 true boolean 值变成变量

标签 java if-statement cannot-find-symbol

(这里是业余高中生 Java 编码员)。我一直在研究这个项目,但我遇到了一个我无法解决的问题。 这是我需要帮助的内容: (我正在尝试编写一个程序来确定司机是否超速,如果是,三张罚单中哪一张适合,以及从帐户中扣除多少钱) 1. 如何在if语句中使用reduce变量?当我将它包含在最后一个 if 语句中时,我收到错误,如下所示......

//variables
    int sbanka = 400;
    int speed = 60;
    int speedlimit = 60;
    int ticket1 = 100;

    //logic
    //Ticket 1
    if(speed > speedlimit + 10) {
        System.out.println("You will recieve the level 1 ticket");
        boolean reduc = true;
    }
        else {
            System.out.println("Your speed was fine.");
        }
            //bank account calculation for ticket 1
            if(reduc == true && sbanka >-100) {
                sbanka -= 100;
                System.out.println("we will deduct 100 dollars from your checking account");

这是完成的程序。感谢您的帮助。

package labs;

public class SpeedingTicket {

    public static void main(String[] args) {

    //variables   
    int speed = 50;
    int speedlimit = 60;
    String text = ("Your account balance is now ");
    boolean reduc = false;        

    //tickets
    int t1 = 100;
    int t2 = 150;
    int t3 = 200;

    //Bank account
    int sbanka = (400);


    //logic       
    if(speed > speedlimit + 10) {           
        System.out.println("You are getting a level one ticket");
        reduc = true;
    }    
        else {
            System.out.println("Your speed was fine.");
            reduc = false;                
        }       
            if(reduc == true) {
                System.out.println(text + (sbanka - t1));
            }


    if(speed > speedlimit + 20) {
        System.out.println("you are getting a level two ticket");
        reduc = true;
    }
        else {
            System.out.println("Your speed was fine.");
            reduc = false;
        }        
            if(reduc == true) {
                System.out.println(text + (sbanka - t2));
            }


    if(speed > speedlimit + 30) {
        System.out.println("This is a serious offence, you are getting a level 3 ticket");
        reduc = true;
    }
        else {
            System.out.println("Your speed was fine.");
            reduc = false;
        }         
            if(reduc == true) {
                System.out.println(text + (sbanka - t3));
            }

}

}

最佳答案

您在 if 语句 if(speed > speedlimit + 10){} => 局部变量下声明了 boolean reduc = true;。因此您不能在 if(){} 之外使用它。
值得一读http://www.geeksforgeeks.org/variable-scope-in-java/
重构如下:

//variables
    int sbanka = 400;
    int speed = 60;
    int speedlimit = 60;
    int ticket1 = 100;
    boolean reduc = false; // <= Fix your logic here by yourself

    //logic
    //Ticket 1
    if(speed > speedlimit + 10) {
        System.out.println("You will recieve the level 1 ticket");
        reduc = true;
    }
        else {
            System.out.println("Your speed was fine.");
        }
            //bank account calculation for ticket 1
            if(reduc == true && sbanka >-100) {
                sbanka -= 100;
                System.out.println("we will deduct 100 dollars from your checking account");

关于java - 如何将 true boolean 值变成变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416478/

相关文章:

java - 安装 Solr PHP JAVA_HOME 错误

jquery - 应用以下格式,除非视口(viewport)小于容器 div - Jquery

c# - 我可以将三元运算符与两个函数一起使用,每个函数都返回 void 吗?

java - 完美数字 1 到 n

java - “找不到符号”或“无法解析符号”错误是什么意思?

java - “Cannot find symbol”或 “Cannot resolve symbol”错误是什么意思?

java - “找不到符号”或“无法解析符号”错误是什么意思?

java - 如何在 JUNG 中添加具有相同标签(但端点不同)的两条边?

Java - SwingWorker - process() 方法中的问题

java - 如何在Intellij Idea中组织一个大型java项目