Я думаю, что ваш вопрос не требует 3 входов. Требуется 3 входа на каждое поле. Поэтому я полагаю, что вы хотите заполнить массив 4х3, попросив пользователя предоставить сведения о бонусе, магазине и отделе 3 раза. Затем четвертое хранилище заполняется по умолчанию.
Лично я бы предложил, чтобы пользователь ввел бонус 1-й, а затем создал 2-мерный массив. Кроме того, если вы хотите стать модным (может быть, вам все равно, ха-ха), вы можете изменить свое выражение while, чтобы поймать любую неудачную запись. Прямо сейчас, если кто-то введет строку, float и т. Д. c, он вернет исключение. К счастью, это довольно легко исправить, хотя
Scanner in = new Scanner(System.in);
//Better to cache dimensions in an array so it's more easily modifiable
int stores = 4;
int depts = 3;
double table [][] = new double[stores][depts];
//Create an array to hold user inputs
int inputs[][] = new int[stores][depts];
//Use a for loop to populate table
for (int i = 1, i <= stores; i ++) {
System.out.println("Enter the bonus here.");
double bonus = in.nextDouble;
//While loop to catch mischievous input
while(!bonus.hasNextDouble) || bonus <=0) {
System.out.println("Invalid input :/");
double bonus = in.nextDouble();
}
System.out.println("Enter store number here.");
int a = in.nextInt();
while (!a.hasNextInt || a>4 || a<1) {
System.out.println("Stop trying to break my code!");
int a = in.nextInt();
}
System.out.println("Enter dept number here.")
int b = in.nextInt();
//Same while loop with b :)
table[a-1][b-1] = bonus;
inputs[i-1][i-1] = {{a},{b}}
//You could catch this with a while loop too using if (!inputs[a][b] = 0) }
Выполнение вышеизложенного заполняет массив точно в запрошенной позиции указанным бонусным значением для 3 магазинов. Я не совсем уверен, что предназначено для 4-го магазина, учитывая, что не указан шаблон, где можно было бы рассчитать значение. Если бы это был я, я бы попросил прояснить это, но в качестве альтернативы мы можем предположить, что другие значения заполняются нулями. Если это так, то массив теперь полностью установлен, так как массивы инициализируются значением по умолчанию, равным 0. Так что теперь вам просто нужно суммировать строки и распечатать их.
for(int i = 1; i <= stores; i++) {
int sum = 0;
for(int j = 1; j<= stores; j++) {
sum += table[i][j];
}
System.out.println("Total store bonus for store " + i + ": " + sum);
}
Вы можете технически поставить что в приведенном выше l oop и сделать все сразу, поскольку он использует те же параметры, но я считаю, что это немного неуклюже и трудно читать лично. Надеюсь, это поможет!