Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 是否将数组的索引0排除为输出选项?_Java_Arrays_Loops - Fatal编程技术网

Java 是否将数组的索引0排除为输出选项?

Java 是否将数组的索引0排除为输出选项?,java,arrays,loops,Java,Arrays,Loops,所以我在我的第一学期,需要完成一个餐厅订单项目。 一切都进行得很顺利,但我对一个项目的规定很感兴趣: iii.当前用餐者的选择完成后,显示他们选择的所有项目的列表。如果他们在每个菜单上选择了第一个选项,则不显示该项目:无选择 未选择数组的索引0。如何仅排除索引0 这是4个do-while循环之一,用户在其中输入他们的选择并验证数据,如果有帮助,我完全被卡住了。谢谢 System.out.println("Please select one item from the beverages menu

所以我在我的第一学期,需要完成一个餐厅订单项目。 一切都进行得很顺利,但我对一个项目的规定很感兴趣:

iii.当前用餐者的选择完成后,显示他们选择的所有项目的列表。如果他们在每个菜单上选择了第一个选项,则不显示该项目:无选择

未选择数组的索引0。如何仅排除索引0

这是4个do-while循环之一,用户在其中输入他们的选择并验证数据,如果有帮助,我完全被卡住了。谢谢

System.out.println("Please select one item from the beverages menu.");
do {
    for(int j = 0; j < beveragesArray.length; j++) {
        System.out.println((j + 1) + ". " + 
                           beveragesArray[j] + " $" + beveragesPriceArray[j]);
    }
    System.out.println("Please enter your selection #: ");
    beverageSelection = input.nextInt();

    if(beverageSelection < 1 || beverageSelection > beveragesArray.length) {
        System.out.println("We don't serve that, what else would you like?");
        badDataFlag = true;
    } else {
        badDataFlag = false;
        accumulator += beveragesPriceArray[beverageSelection - 1];
        break;
    }               
} while (badDataFlag = true);   

虽然有很多方法可以解决这个问题,但最简单的方法是添加“Item1 No Selection”,就像您当前在打印输出时所做的那样,只需使用if语句即可。如果值为第1项,则不要打印任何内容,否则,打印内容

虽然没有发布相应的代码,但可以是这样简单的代码

if ( itemSelectedindex > 0 ){
     // print something tasty
} 

您可以通过声明字符串来累积订单,而不是添加索引为0的项目 在所有do while循环中声明此字符串,可能是main()中的第一行

在这个位置,添加新的if语句

if(beverageSelection < 1 || beverageSelection > beveragesArray.length) {
    System.out.println("We don't serve that, what else would you like?");
    badDataFlag = true;
} else {
    badDataFlag = false;
    accumulator += beveragesPriceArray[beverageSelection - 1];

    //NEW CODE//
    if(beverageSelection != 1){//1. **No selection** $0.00
        customerOrder += beveragesArray[beverageSelection - 1] + "\n";
    }
    //NEW CODE//

    break;
}   

如果selectedArray[index]=0,则不要打印选择内容。如果您向我们显示将最终订单打印给用户的代码部分,则会有所帮助。有几种方法可以做你想做的事情。您是否尝试创建一个数组来存储用户选择的项目?然后,在用户选择的最后,您可以使用for循环打印数组,但测试下一个数组项是否为“No selection”。如果是,您可以跳过此项。顺便说一下,这是一个错误,
do{…}while(badDataFlag=true)。这是一个无限循环。你的意思是
do{…}while(badDataFlag)。感谢所有的输入人员。舒尔茨,你是对的,但我的教授对“膨胀代码”一丝不苟,所以我将采用亚赞的方法。谢谢你们两位!谢谢你,伙计!我开始担心膨胀代码的分数扣减,在每个子菜单中使用ifs,这是非常优雅的。非常感谢。很高兴听到这个消息,所以如果你需要的话,请把这个标记为答案
String customerOrder = "";
if(beverageSelection < 1 || beverageSelection > beveragesArray.length) {
    System.out.println("We don't serve that, what else would you like?");
    badDataFlag = true;
} else {
    badDataFlag = false;
    accumulator += beveragesPriceArray[beverageSelection - 1];

    //NEW CODE//
    if(beverageSelection != 1){//1. **No selection** $0.00
        customerOrder += beveragesArray[beverageSelection - 1] + "\n";
    }
    //NEW CODE//

    break;
}   
System.out.println("Thank you, Evelyn. Your order consists of:");
System.out.println(customerOrder );