3
这是我的代码。我不知道如何使用返回值退出程序。有任何想法吗?这是我分配的最后一步。 重要区域标有/////// 我听到返回工程,但是当我将void更改为int时,程序说main必须为void。如何退出Java程序而无System.exit?(来自用户输入?)
import java.util.Scanner;
public class CommissionCalculator {
public static void main(String args[]) {
// Initialize a Scanner to read input from the command line
Scanner ItemSelect = new Scanner(System.in);
double comp = 200.00;
double item1 = 239.99;
double item2 = 129.75;
double item3 = 99.95;
double item4 = 350.89;
double comm = 0.09;
int choice;
/* Note that we'll be doing this at least once and most likely multiple times...
* Prompt the user with a menu of the four items and their values (this information is included in the problem statement)
*/
System.out.println("Item\tValue");
System.out.println("1\t$239.99");
System.out.println("2\t$129.75");
System.out.println("3\t$99.95");
System.out.println("4\t$350.89");
/* Display the user's current compensation */
System.out.printf("Current compensation: $%.2f", comp);
/*
* Prompt and take input from the user (you may assume that they will only enter int values)
* They'll enter an item number (1 - 4) to record its sale or 0 to exit
*
* NOTE: THE U0SER DOES NOT ENTER PRICES DIRECTLY... THEY ENTER ITEM NUMBERS TO INDICATE WHAT WAS SOLD
* NOTE: THE USER MAY ENTER THE SAME ITEM NUMBRER MULTIPLE TIMES
*
* If the user provides invalid input (a value other than 0 - 4) display "ERROR: Invalid input!" and prompt them again
*/
do
{
System.out.print("\nPlease select an item from the " +
"list above (or enter 0 to exit): ");
choice = ItemSelect.nextInt();
{
if (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 0)
{
do
{
System.out.print("ERROR: Invalid Input!\n");
System.out.println("Item\tValue");
System.out.println("1\t$239.99");
System.out.println("2\t$129.75");
System.out.println("3\t$99.95");
System.out.println("4\t$350.89");
System.out.printf("Current compensation: $%.2f", comp);
System.out.print("\nPlease select an item from the " +
"list above (or enter 0 to exit): ");
choice = ItemSelect.nextInt();
if (choice == 1)
{
comp += (comm * item1);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 2)
{
comp += (comm * item2);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 3)
{
comp += (comm * item3);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 4)
{
comp += (comm * item4);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 0)
{
System.out.printf("Total Earnings: $%.2f", comp);
System.exit(0); ///////
}
}while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 0);
}
else
{
if (choice == 1)
{
comp += (comm * item1);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 2)
{
comp += (comm * item2);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 3)
{
comp += (comm * item3);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 4)
{
comp += (comm * item4);
System.out.printf("Current compensation: $%.2f", comp);
}
if (choice == 0)
{
System.out.printf("Total Earnings: $%.2f", comp);
System.exit(0);
}
}
}
}while (choice != 0);
/* After the user enters 0, display the salesperson's earnings in the format "Total earnings: $NNN.NN" and exit
* For example, if the salesperson sold two item 3s this week the final output would be "Total earnings: $217.99"
*/
if (choice == 0)
{
System.out.printf("Total Earnings: $%.2f", comp);
System.exit(0); ///////
}
ItemSelect.close();
System.exit(0); ///////
}
}
将值返回给调用程序的唯一方法是使用System.exit。例如,如果你想从另一个类访问这个方法,那么你应该把内容移动到另一个能够返回你想要的值的方法,然后你可以从你的主方法中得到这个,如果你需要或从另一个类。这样,你可以使用返回 – MadProgrammer
这就是它。你为什么不回答,我解决了。 – user1781382
我没有回答,因为这个问题有点模糊(恕我直言),但如果你喜欢评论,给它一点投票;) – MadProgrammer