【发布时间】:2012-11-17 19:31:15
【问题描述】:
当我运行程序时,它会运行 else 部分并执行,但在 if 部分它只是一直循环,直到我不得不强行停止它才会停止.我试图在 choice 上为它提供从 1 到 4 的参数以及不低于 1 的 meters 参数。是否有替代参数的方法?
import java.util.*;
public class Project4
{
public static void showKilometers(double meters) //this is a parameterized function
{
double kilometers = meters * 0.001;
System.out.println(meters +" meters is " + kilometers + " kilometers.");
}
public static void showInches(double meters)
{
double inches = meters * 39.37;
System.out.println(meters +" meters is " + inches + " inches.");
}
public static void showFeet(double meters)
{
double feet = meters * 3.281;
System.out.println(meters +" meters is " + feet + " feet.");
}
public static void quitProgram()
{
System.out.println("Goodbye!");
System.out.println(0);
}
public static void showMenu()
{
System.out.println(" 1. Convert to kilometers ");
System.out.println(" 2. Convert to inches ");
System.out.println(" 3. Convert to feet ");
System.out.println(" 4. Quit the program ");
System.out.println(" ");
}
public static void main (String [] args)
{
double meters;
int choice;
Scanner keyboard = new Scanner (System.in);
System.out.println("Enter a distance in meters: ");
meters = keyboard.nextDouble();
while (meters <=0 || meters > 0)
{
if (meters > 0)
{
showMenu();
meters = keyboard.nextDouble();
}
else
{
System.out.println("Please enter a number greater than 1");
meters = keyboard.nextDouble();
showMenu();
}
}
choice = keyboard.nextInt();
switch(choice) //note the use of switch case
{
case 1: showKilometers(meters);
break;
case 2:showInches(meters);
break;
case 3:showFeet(meters);
break;
case 4:
quitProgram();
}
}
}
【问题讨论】:
标签: java loops if-statement while-loop