I have semi-successfully coded this program. As it stands, it prints an integer value as a result of what you type in. The only results can be 0, 1, or 2. I am wondering how to make java display a message for each one of those 3 integer values. For instance, a returned result of 0 might make it print "You received no ticket", while a result of 2 would say "You're going to jail, buddy!" Any tips on how I could do this?
I know the answer is probably very simple; bear with me, as I am just starting out :)
Thanks!
import java.util.Scanner;
public class SpeedingBool {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Your ticket is " caughtSpeeding(input));
}
public static int caughtSpeeding(Scanner input) {
System.out.println("How fast were you going?");
int speed = input.nextInt();
System.out.println("True or false: today is your birthday");
boolean isBirthday = input.nextBoolean();
int ticket;
if (isBirthday) {
if (speed <= 65)
ticket = 0;
else if (speed > 65 && speed <= 85)
ticket = 1;
else ticket = 2;
}
else {
if (speed <= 60)
ticket = 0;
else if (speed > 60 && speed <= 80)
ticket = 1;
else ticket = 2;
}
return ticket;
}
}
CodePudding user response:
You can just go with simple if-else on returned value. I am giving you an example with some minor logical improvements.
else if (speed > 65 && speed <= 85)
ticket = 1;
this line will only reach is the speed is already greater than 65. So you can do this:
else if (speed <= 85)
ticket = 1;
Similar for this:
else if (speed > 60 && speed <= 80)
ticket = 1;
Make it like this:
else if (speed <= 80)
ticket = 1;
And finally the full code:
import java.util.Scanner;
public class SpeedingBool {
public static void main( String[] args ) {
Scanner input = new Scanner(System.in);
int i = caughtSpeeding(input);
String ticket;
if (i == 0)
ticket = "You received no ticket";
else if (i == 1)
ticket = "Return value 1 ticket";
else
ticket = "You're going to jail, buddy!";
System.out.println("Your ticket is " ticket);
}
public static int caughtSpeeding( Scanner input ) {
System.out.println("How fast were you going?");
int speed = input.nextInt();
System.out.println("True or false: today is your birthday");
boolean isBirthday = input.nextBoolean();
int ticket;
if (isBirthday) {
if (speed <= 65)
ticket = 0;
else if (speed <= 85)
ticket = 1;
else ticket = 2;
} else {
if (speed <= 60)
ticket = 0;
else if (speed <= 80)
ticket = 1;
else ticket = 2;
}
return ticket;
}
}