This question already has answers here:
Is Java “pass-by-reference” or “pass-by-value”?
(87个答案)
去年关闭。
我被分配去创建一个菜单驱动程序,其中包含一个显示菜单屏幕/获取用户输入的功能,但是
我对编程还很陌生,并且已经搜索了所有我能想到的东西,而且我很困。
程序应使用用户输入1、2或3,然后将该数字输入开关并显示代码。
您还可以删除作为参数的
(87个答案)
去年关闭。
我被分配去创建一个菜单驱动程序,其中包含一个显示菜单屏幕/获取用户输入的功能,但是
displaymenu()
始终且仅返回0而不是新输入的数字。我对编程还很陌生,并且已经搜索了所有我能想到的东西,而且我很困。
import java.util.Scanner;
public class menuDriven
{
public static void main(String[] args)
{
int menuSelection=0;
double inches, centimeters, feet, meters, miles, kilometers;
Scanner keyboard = new Scanner(System.in);
displayMenu(keyboard, menuSelection);
switch(menuSelection)
{
case 1:
inchesToCentimeters(keyboard);
break;
case 2:
feetToMeters(keyboard);
break;
case 3:
milesToKilometers(keyboard);
break;
}
} // end main
public static int displayMenu(Scanner keyboard, int menuSelection)
{
System.out.println("1. Convert inches to centimeters");
System.out.println("2. Convert feet to meters");
System.out.println("3. Convert miles to kilometers");
System.out.println();
System.out.println("Enter your selection");
menuSelection = keyboard.nextInt();
while (menuSelection < 1 || menuSelection > 3)
{
System.out.println("Please enter 1, 2, or 3.");
menuSelection = keyboard.nextInt();
}
return menuSelection;
}
public static void inchesToCentimeters(Scanner keyboard)
{
double inches, centimeters;
System.out.print("Enter the number of inches: ");
inches = keyboard.nextDouble();
centimeters = inches * 2.54;
System.out.println("That is equal to " + centimeters + "
centimeters.");
}
public static void feetToMeters(Scanner keyboard)
{
double feet, meters;
System.out.println("Enter the number of feet: ");
feet = keyboard.nextDouble();
meters = feet * 0.3048;
System.out.println("That is equal to " + meters + " meters.");
}
public static void milesToKilometers(Scanner keyboard)
{
double miles, kilometers;
System.out.println("Enter the number of miles: ");
miles = keyboard.nextDouble();
kilometers = miles * 1.609;
System.out.println("That is equal to " + kilometers + "
kilometers.");
}
} // end class
程序应使用用户输入1、2或3,然后将该数字输入开关并显示代码。
最佳答案
Java通过值传递原始参数,因此,尽管您在menuSelection
中操纵displayMenu
参数,但menuSelection
中的main
与调用displayMenu
之前的一样。
您可以将displayMenu
的结果分配给menuSelection
:
menuSelection = displayMenu(keyboard, menuSelection);
您还可以删除作为参数的
menuSelection
传递并将其在displayMenu
内声明,例如:public static int displayMenu(Scanner keyboard) {
int menuSelection=0;
//...
}
07-26 03:55