对于java来说,我是初学者。我有一个简单的java编程任务。以下是该计划的基础:
“Best Purchase正在接受电子设备和配件的在线订单。他们开发了一个程序,允许用户从项目菜单中选择要购买的设备。编写允许用户(客户)的程序选择要购买的商品,计算订购商品的价格,并向客户显示此信息的收据(假设销售税率为6.5%)“
您的程序应提示用户(客户)输入以下信息:
程序然后输出以下信息:
根据用户选择的数字,我的问题是如何在嵌套中添加值?
Ex:用户选择1,2,3,10(退出循环)
这是我的代码:
import java.util.Scanner;
public class OnlinePurchase {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
//Declare Variables
Scanner input = new Scanner(System.in);
String sCustomerName =""; //Stores the Customer's Name
int nSelection = 0; //Stores the value entered by the user
int nSum = 0; //Stores sum of values entered
int nCount = 0; //Number of values entered
int nPrice = 0;
//Declare Constants
final int SENTINEL = 10; //Used to end loop
//Promt User to enter the their name.
System.out.print("Please enter the your name: ");
//Read Customer Name input from user
sCustomerName = input.nextLine( );
//Print to Blank Line for spacing
System.out.println("\n");
//Print Purchase Menu
System.out.println("BEST PURCHASE PRODUCTS:");
System.out.println("1. Smartphone..........$249");
System.out.println("2. Smartphone Case.... $39");
System.out.println("3. PC Laptop...........$1149");
System.out.println("4. Tablet..............$349");
System.out.println("5. Tablet Case.........$49");
System.out.println("6. eReader.............$119");
System.out.println("7. PC Desktop..........$889");
System.out.println("8. LED Monitor.........$299");
System.out.println("9. Laser Printer.......$399");
System.out.println("10.Complete my order");
//Print to Blank Line for spacing
System.out.println("\n");
while (nSelection != SENTINEL) {
//Calculate sum
nSum = nPrice + nSum;
//Increment counter
nCount++; //or nCount = nCount + 1;
//Promt User to enter the an item from the menu.
System.out.print("Please enter item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
if (nSelection == 1) {
nPrice = 249;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 2 ) {
nPrice = 39;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 3 ) {
nPrice = 1149;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 4 ) {
nPrice = 349;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 5 ) {
nPrice = 49;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 6 ) {
nPrice = 119;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 7 ) {
nPrice = 899;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 8 ) {
nPrice = 299;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
else if (nSelection == 9 ) {
nPrice = 399;
//Promt User to enter the an item from the menu.
System.out.print("Please enter another item from the menu above: ");
//Read input from user for selected purchase
nSelection = input.nextInt();
}
}//end while user did not enter 10
//Print blank line
System.out.println();
//Print Thank You message
System.out.println("Thank you for ordering with Best Purchase,"+sCustomerName);
//Print number of integers entered
System.out.println("Total Items Ordered: " + nCount);
//Print number of integers entered
System.out.println("Total: $" + nSum);
}//end main class
}//end public class
答案 0 :(得分:2)
老实说,您的代码过于复杂,并且存在大量重复。 您应该利用重用方法和switch语句来处理选择合适的价格。此外,您不应将所有程序逻辑放在main方法中 - 利用更小,更简洁的方法并最小化main()中的内容。
你的while循环应该只接受下一行输入,调用processItem()方法并在输入的数字是你的Sentinel值(10)时终止。
尝试修改您的代码:
import java.util.Scanner;
public class OnlinePurchase {
String customerName;
int nSum = 0; //Stores sum of values entered
int nCount = 0; //Number of values entered
public void printPurchaseMenu(){
//Print Purchase Menu
System.out.println("\nBEST PURCHASE PRODUCTS:");
System.out.println("1. Smartphone..........$249");
System.out.println("2. Smartphone Case.... $39");
System.out.println("3. PC Laptop...........$1149");
System.out.println("4. Tablet..............$349");
System.out.println("5. Tablet Case.........$49");
System.out.println("6. eReader.............$119");
System.out.println("7. PC Desktop..........$889");
System.out.println("8. LED Monitor.........$299");
System.out.println("9. Laser Printer.......$399");
System.out.println("10.Complete my order");
}
public void setCustomerName(String name){
customerName = name;
}
public void processInput(int inputValue){
switch(inputValue){
case 1: addItem(249); break;
case 2: addItem(39); break;
case 3: addItem(1149); break;
case 4: addItem(349); break;
case 5: addItem(49); break;
case 6: addItem(119); break;
case 7: addItem(889); break;
case 8: addItem(299); break;
case 9: addItem(399); break;
case 10: printResults(); break;
default: System.out.println("You entered an invalid value.");
}
}
public void addItem(int price){
nSum += price;
nCount++;
}
public void printResults(){
//Print Thank You message
System.out.println("\nThank you for ordering with Best Purchase," + customerName);
//Print number of integers entered
System.out.println("Total Items Ordered: " + nCount);
//Print number of integers entered
System.out.println("Total: $" + nSum);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
OnlinePurchase onlinePurchase = new OnlinePurchase();
//Declare Variables
Scanner input = new Scanner(System.in);
int nSelection = 0; //Stores the value entered by the user
//Declare Constants
final int SENTINEL = 10; //Used to end loop
//Prompt User to enter the their name.
System.out.print("Please enter the your name: ");
//Read Customer Name input from user
onlinePurchase.setCustomerName(input.nextLine( ));
//Print Purchase Menu
onlinePurchase.printPurchaseMenu();
while (nSelection != SENTINEL){
System.out.print("Please enter item from the menu above: ");
nSelection = input.nextInt();
onlinePurchase.processInput(nSelection);
System.out.println("\n");
}//end while user did not enter 10
}//end main method
}//end public class