根据其他方法的输入计算结果?

时间:2018-04-03 14:58:10

标签: java

我正在尝试创建一个生成超速罚单的GUI应用程序。到目前为止,我有一种方法来获得用户区域的速度限制,一种获得用户速度的方法,我已经创建了一个IF语句来计算结果。我希望能够返回IF语句的结果。

我还没有开始创建GUI,但以后也需要。现在,这是我的问题。

import java.util.Scanner;
public class SpeedingTicketClass {


    Scanner scan=new Scanner (System.in);
    int speedLimit=0;
    int usersSpeed=0;

    //Method being used to obtain 
    public void getSpeedLimit() {
        System.out.println("Please enter the speed limit: ");
        speedLimit=scan.nextInt();
    }

    //Method being used to obtain the speed in which a user is going at.
    public void getUsersSpeed() {
        System.out.println("Please enter your speed: ");
        usersSpeed=scan.nextInt();
    }

    public String calculateSpeed() {
        String calculate="";
        if (speedLimit==20 && usersSpeed>20 && usersSpeed<=24) {
            calculate="Just a warning. Please do not speed again!";
        }
        else if (speedLimit==20 && usersSpeed>24 && usersSpeed<30) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==20 && usersSpeed>=30 && usersSpeed<35) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==20 && usersSpeed>=35 && usersSpeed<40) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==20 && usersSpeed>=40) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        } 
        else if (speedLimit==20 && usersSpeed<=20) {
            calculate=("You are within the speed limit!");
        } //20mph IF statement

        if (speedLimit==30 && usersSpeed>30 && usersSpeed<=34) {
            calculate=("Just a warning. Please do not speed again!");
        }
        else if (speedLimit==30 && usersSpeed>34 && usersSpeed<40) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==30 && usersSpeed>=40 && usersSpeed<45) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==30 && usersSpeed>=45 && usersSpeed<50) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==30 && usersSpeed>=50) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        }
        else if (speedLimit==30 && usersSpeed<=30) {
            calculate=("You are within the speed limit!");
        } //30mph IF statement

        if (speedLimit==40 && usersSpeed>40 && usersSpeed<=44) {
            calculate=("Just a warning. Please do not speed again!");
        }
        else if (speedLimit==40 && usersSpeed>44 && usersSpeed<50) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==40 && usersSpeed>=50 && usersSpeed<55) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==40 && usersSpeed>=55 && usersSpeed<60) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==40 && usersSpeed>=60) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        }
        else if (speedLimit==40 && usersSpeed<=40) {
            calculate=("You are within the speed limit!");
        } //40mph IF statement

        if (speedLimit==50 && usersSpeed>50 && usersSpeed<=54) {
            calculate=("Just a warning. Please do not speed again!");
        }
        else if (speedLimit==50 && usersSpeed>54 && usersSpeed<60) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==50 && usersSpeed>=60 && usersSpeed<65) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==50 && usersSpeed>=65 && usersSpeed<70) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==50 && usersSpeed>=70) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        }
        else if (speedLimit==50 && usersSpeed<=50) {
            calculate=("You are within the speed limit!");
        } //50mph IF statement

        if (speedLimit==60 && usersSpeed>60 && usersSpeed<=64) {
            calculate=("Just a warning. Please do not speed again!");
        }
        else if (speedLimit==60 && usersSpeed>64 && usersSpeed<70) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==60 && usersSpeed>=70 && usersSpeed<75) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==60 && usersSpeed>=75 && usersSpeed<80) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==60 && usersSpeed>=80) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        }
        else if (speedLimit==60 && usersSpeed<=60) {
            calculate=("You are within the speed limit!");
        } //60mph IF statement

        if (speedLimit==70 && usersSpeed>70 && usersSpeed<=74) {
            calculate=("Just a warning. Please do not speed again!");
        }
        else if (speedLimit==70 && usersSpeed>74 && usersSpeed<80) {
            calculate=("Fine. £50 to pay!");
        }
        else if (speedLimit==70 && usersSpeed>=80 && usersSpeed<85) {
            calculate=("Fine. £100 to pay!");
        }
        else if (speedLimit==70 && usersSpeed>=85 && usersSpeed<90) {
            calculate=("3 points on your license and £150 fine to pay!");
        }
        else if (speedLimit==70 && usersSpeed>=90) {
            calculate=("Disqualifed and a £1000 fine to pay!");
        }
        else if (speedLimit==70 && usersSpeed<=70) {
            calculate=("You are within the speed limit!");
        } //70mph IF statement  

        if (speedLimit>70) {
            calculate=("Please enter a speed limit which is 70mph or under!");
        }
        System.out.println(calculate);
        return calculate;
    }
}

1 个答案:

答案 0 :(得分:0)

您不需要将speedLimit / userSpeed存储为全局变量。

将您的公共String calculateSpeed()函数更改为

public String calculateSpeed(int speedLimit, int userSpeed) 

在函数中输入userSpeed / speedLimit,然后通过

调用该函数
string result = calculateSpeed( speedLimit, userSpeed)

这将调用该函数,传递2个参数并使用它们。当calculateSpeed返回字符串“calculate”时,字符串“result”将被设置为函数的结果。