import java.util.Scanner;
public class cas {
public static void main(String []args){
Scanner soma = new Scanner(System.in);
System.out.println("Welcome to the speed calculator program!");
System.out.println("What measurement of distance are you using?");
String unitd = soma.next();
System.out.println("What measurement of time are you using?");
String unitt = soma.next();
System.out.println("Input the distance here v");
int d = soma.nextInt();
System.out.println("Input the time here v");
int t = soma.nextInt();
System.out.println("What is the preferred unit of measurement!");
String unit = soma.next();
switch (unitd) {
case "meter":
System.out.println("Thanks for letting me know!");
break;
case "kilometer":
System.out.println("Thanks for letting me know!");
int d2 = d / 1000;
break;
case "centimeter":
System.out.println("Thanks for letting me know!");
d2 = d * 100;
break;
case "millimeter":
System.out.println("Thanks for letting me know!");
d2 = d * 1000;
break;
case "mile":
System.out.println("Thanks for letting me know!");
d2 = d / 1609;
break;
case "nautical mile":
System.out.println("Thanks for letting me know!");
d2 = d * 1852;
break;
switch (unitt){
case "minutes":
System.out.println("Thanks for letting me know!");
int t2 = t * 60;
break;
case "hours":
System.out.println("Thanks for letting me know!");
t2 = t * 3600;
break;
case "seconds":
System.out.println("Thanks for letting me know!");
break;
switch (unit){
case "mps":
System.out.println("We are calculating in meters per second.");
int s1 = d2/t2;
System.out.println("Speed is "+ s1 +"m/s.");
break;
case "kmph":
System.out.println("We are calculating in kilometers per hour.");
int s2 = d2/t2;
System.out.println("Speed is "+ s2 +"km/h.");
break;
case "mph":
System.out.println("We are calculating in miles per hour.");
int s3 = d2/t2;
System.out.println("Speed is "+ s3 +"mph.");
break;
default:
System.out.println("Exiting Program...");
break;
}}}
}}
put the }'s in the correct places and handle default cases for each.
It would help to indent your code so you can more easily see which things belong together.
Here ya go:
import java.util.Scanner;
public class Cas {
public static void main(String[] args) {
Scanner soma = new Scanner(System.in);
System.out.println("Welcome to the speed calculator program!");
// Collect unit of distance and time
System.out.println("What measurement of distance are you using?");
String unitd = soma.next();
System.out.println("What measurement of time are you using?");
String unitt = soma.next();
// Collect distance and time values
System.out.println("Input the distance here v");
int d = soma.nextInt();
System.out.println("Input the time here v");
int t = soma.nextInt();
// Collect preferred unit of measurement
System.out.println("What is the preferred unit of measurement!");
String unit = soma.next();
// Convert distance to meters if necessary
int d2 = d;
switch (unitd) {
case "meter":
System.out.println("Thanks for letting me know!");
break;
case "kilometer":
System.out.println("Thanks for letting me know!");
d2 = d * 1000;
break;
case "centimeter":
System.out.println("Thanks for letting me know!");
d2 = d / 100;
break;
case "millimeter":
System.out.println("Thanks for letting me know!");
d2 = d / 1000;
break;
case "mile":
System.out.println("Thanks for letting me know!");
d2 = d * 1609;
break;
case "nautical mile":
System.out.println("Thanks for letting me know!");
d2 = d * 1852;
break;
default:
System.out.println("Unknown distance unit!");
return;
}
// Convert time to seconds if necessary
int t2 = t;
switch (unitt) {
case "minutes":
System.out.println("Thanks for letting me know!");
t2 = t * 60;
break;
case "hours":
System.out.println("Thanks for letting me know!");
t2 = t * 3600;
break;
case "seconds":
System.out.println("Thanks for letting me know!");
break;
default:
System.out.println("Unknown time unit!");
return;
}
// Calculate speed based on preferred unit
switch (unit) {
case "mps":
System.out.println("We are calculating in meters per second.");
int s1 = d2 / t2;
System.out.println("Speed is " + s1 + " m/s.");
break;
case "kmph":
System.out.println("We are calculating in kilometers per hour.");
int s2 = (d2 * 3600) / (t2 * 1000);
System.out.println("Speed is " + s2 + " km/h.");
break;
case "mph":
System.out.println("We are calculating in miles per hour.");
int s3 = (d2 * 3600) / (t2 * 1609);
System.out.println("Speed is " + s3 + " mph.");
break;
default:
System.out.println("Exiting Program...");
break;
}
}
}
This also fixes some potential issues (like d2
and t2
not being initialized properly) so the whole thing should work now.
2 Likes
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.