我正在尝试创建一个生成超速罚单的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;
}
}
答案 0 :(得分:0)
您不需要将speedLimit / userSpeed存储为全局变量。
将您的公共String calculateSpeed()函数更改为
public String calculateSpeed(int speedLimit, int userSpeed)
在函数中输入userSpeed / speedLimit,然后通过
调用该函数string result = calculateSpeed( speedLimit, userSpeed)
这将调用该函数,传递2个参数并使用它们。当calculateSpeed返回字符串“calculate”时,字符串“result”将被设置为函数的结果。