Ниже моя программа на 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");
}
}
}
}
}
Спасибо!