Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何退出我的环路?_Java_Loops - Fatal编程技术网

Java 如何退出我的环路?

Java 如何退出我的环路?,java,loops,Java,Loops,这是我班的作业。这是一个自动订购系统。我对Java还是新手,所以现在一切都不一定都很顺利。我认为大多数事情在很大程度上都是可行的,但我遇到的主要问题是循环本身和退出 import java.util.Scanner; public class Metal { public static void main (String[] args) { double PRICE1 = 5.00; double PRICE2 = 7.00; double PRICE3 = 3.50;

这是我班的作业。这是一个自动订购系统。我对Java还是新手,所以现在一切都不一定都很顺利。我认为大多数事情在很大程度上都是可行的,但我遇到的主要问题是循环本身和退出

import java.util.Scanner;
public class Metal {
public static void main (String[] args) {
    double PRICE1 = 5.00;
    double PRICE2 = 7.00;
    double PRICE3 = 3.50;
    double PRICE4 = 0.75;
    double TAX = 0.05;

    System.out.println ("Metal Down Your Mouth Menu");
    System.out.println ();
    System.out.println ();
    System.out.println ();
    System.out.println ("1. Black Sabbath Burgers (Hamburgers With Black Buns) " + PRICE1);
    System.out.println ("2. Rack of Lamb of God (Rack of Lamb) " + PRICE2);
    System.out.println ("3. Texas Hippie Collar Greens (Collar Greens) " + PRICE3);
    System.out.println ("4. Pepsi " + PRICE4);
    System.out.println ("Press any other button to stop ordering.");


    Scanner userInput = new Scanner(System.in);
    int itemnumber = 0;
    while (itemnumber < 1 || itemnumber > 4) {
    System.out.print("Enter the item number of the item you wish to order: ");
    itemnumber = userInput.nextInt();
    }

    System.out.print ("How many?");
    int amount = userInput.nextInt();

        double subtotal = 0;
        double total = 0;
        double price = 0;
        double taxes = 0;
        String name = "";

    switch (itemnumber){
        case 1: name = "Black Sabbath Burgers"; price = PRICE1; break;
        case 2: name = "Rack of Lamb of God"; price = PRICE2; break;
        case 3: name = "Texas Hippie Collar Greens"; price = PRICE3; break;
        case 4: name = "Pepsi"; price = PRICE4; break;
    }
        subtotal = price * amount;
        total = subtotal + total;   
        System.out.print("Price for items: " + subtotal);
        System.out.print("Price Total: " + total);
}
import java.util.Scanner;
公共级金属{
公共静态void main(字符串[]args){
双倍价格1=5.00;
双倍价格2=7.00;
双倍价格3=3.50;
双倍价格4=0.75;
双重税=0.05;
System.out.println(“金属口腔菜单”);
System.out.println();
System.out.println();
System.out.println();
System.out.println(“1.黑色安息日汉堡(黑面包汉堡)”+价格1);
System.out.println(“2.上帝的羔羊架(Rack of Lamb)”+价格2);
System.out.println(“3.德克萨斯嬉皮士领绿(领绿)”+价格3);
System.out.println(“4.百事可乐”+价格4);
System.out.println(“按任何其他按钮停止订购”);
扫描仪用户输入=新扫描仪(System.in);
int itemnumber=0;
而(itemnumber<1 | | itemnumber>4){
System.out.print(“输入您想要订购的商品的商品编号:”;
itemnumber=userInput.nextInt();
}
System.out.print(“多少?”);
int amount=userInput.nextInt();
双倍小计=0;
双倍合计=0;
双倍价格=0;
双重征税=0;
字符串名称=”;
开关(项目编号){
案例1:name=“黑色安息日汉堡”价格=价格1;中断;
案例2:name=“上帝的羔羊架”;price=PRICE2;break;
案例3:name=“德克萨斯嬉皮士领绿色蔬菜”;price=PRICE3;break;
案例4:name=“Pepsi”;price=PRICE4;break;
}
小计=价格*金额;
总计=小计+总计;
系统输出打印(“项目价格:+小计”);
系统输出打印(“价格合计:+合计);
}

这是我第一次在这个网站上发帖,但我想我发现了你的问题。有两个大错误,箭头表示:

while (itemnumber >= 1 || <-- itemnumber <= 4) {
System.out.print("Enter the item number of the item you wish to order: ");
itemnumber = userInput.nextInt();
} <--
然后在循环的末尾放置同一行以重置itemnumber。如果itemnumber介于1和4之间,则循环执行以下代码。否则,它将停止。通过在进入循环之前进行检查,可以设置itemnumber,以便循环可以进行检查。然后在循环的末尾放置下一个输入,以便在继续下一步之前,程序完成第一次执行的方式

此外,您应该将变量“total”移出循环,如上图所示。如果您继续在其上循环并将其重置为0,则您的total每次都将输出0。最好将total的创建移出循环,并在循环内对其进行修改

System.out.print("Enter the item number of the item you wish to order: ");
itemnumber = userInput.nextInt();
小提示,使用System.out.println();而不是System.out.print();它将输出放在自己的行上。看起来更好一些


我想这就涵盖了它。如果你想要更多的解释,我会非常乐意给你。一旦你习惯了Java,它会非常有趣。它只是需要时间。:d

你的循环条件是反向的。这开始对我有帮助,但我无法让它循环。循环到底在哪里?如果你想重复菜单,你关闭循环体太早了。o当然,您可能希望使用
do…while
循环,因为否则
itemnumber
为零,因此在您第一次读取值之前会进行检查。我正在尝试循环项目输入/金额输入部分。对。您需要扩展循环体以包含其余代码。并且您必须使用
do…while
循环,因为在检查循环条件时,您还没有输入。尽管如此,这仍然有点棘手,因为您想重复整个过程,但只有在有适当的值时。有更多的方法可以做到这一点-简单的
如果
中断
返回
…谢谢!这很有帮助!
     itemnumber = userInput.nextInt();
  } <--
System.out.print("Enter the item number of the item you wish to order: ");
itemnumber = userInput.nextInt();