最喜欢的食物 Java 程序出错了

下面是我的Java程序。现在,程序正确运行的唯一方法是让最后一列最长。如果数组中的最后一列不是最长的,则输出不正确。例如,如果food数组在第二列中的元素比第三列中的元素多,如下所示:


String[][] food = {

        {"Bannana", "Apple", "Pear", "Orange"}, // fruits

        {"GreenBean", "Iceburg", "Spenach", "peas", "carrots", "potatoes", "beans"}, // vegetables 

        {"Steak",   "Baccon", "Beef", "TurkeyB", "TurkeyBacon", "Chicken"} // meats 

};

然后,例如,如果chicken输入作为输入,则输出是这样的:


Yo have no favorite food

Your favorite food is Chicken

而且,例如,如果输入是biscuit,那么输出是这样的:


Yo have no favorite food

Yo have no favorite food

那么,有没有办法只打印"Yo have no favorite food"一次或正确打印出最喜欢的食物,而最后一列不必最长?


这是代码:


package com.begg;


import java.util.*;


public class List {

    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {

        String[][] food = {

                {"Bannana", "Apple", "Pear", "Orange"}, // fruits

                {"GreenBean", "Iceburg", "Spenach", "peas"}, // vegetables 

                {"Steak",   "Baccon", "Beef", "TurkeyB", "TurkeyBacon", "Chicken"} // meats 

        };


        for(int row = 0; row < food.length; row++) {

            for (int col = 0; col < food[row].length; col ++) {

                System.out.print(food[row][col] + ", ");

            }

            System.out.println();

        }

        System.out.println("Enter your favorite out of the options above:");

        String k = sc.next();

        loop2:

        for(int row2 = 0; row2<food.length; row2++) {

            for (int col2 = 0; col2< food[row2].length; col2++) {

                if (k.equalsIgnoreCase(food[row2][col2])) {

                    System.out.println("Your favorite food is " + food[row2][col2]);

                    break loop2;

                }

                else if (!(k.equalsIgnoreCase(food[row2][col2])) & col2== 5 ) {

                    System.out.println("Yo have no favorite food");

                }

            }

        }


    }

}


守候你守候我
浏览 180回答 2
2回答

Cats萌萌

改变这部分:else if (!(k.equalsIgnoreCase(food[row2][col2])) & col2== 5 ) {&nbsp; &nbsp; System.out.println("Yo have no favorite food");}对此:else if (!(k.equalsIgnoreCase(food[row2][col2])) && row2 == food.length-1 && col2 == food[row2].length-1) {&nbsp; &nbsp; System.out.println("Yo have no favorite food");}应该做我认为你正在寻找的。编辑else if检查是否已检查数组的所有值(与哪一列更长无关),如果没有与输入匹配,则它将执行System.out.println("Yo have no favorite food");一次。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java