Java

Переменная в for loop

Как я могу доделать скрипт, если переменные из for loop и основного метода не одно и тоже?

Идея кода в том, чтобы высчитывать сколько вещей определенного веса можно положить в ручную кладь самолета, если вес вещей превышает вес клади, все что больше идет в багаж.
 import java.util.Scanner; 
public class Main {
public static void main(String[] args) {
int cloth = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Ведите максимальный вес ручной клади");
int kg = scanner.nextInt();
System.out.println("Введите количество вещей");
int clothes = scanner.nextInt();
for (int i = 0; i < clothes; i++) {
System.out.println("Введите вес вещи");
cloth = scanner.nextInt();
}
if (cloth >= kg) {
System.out.println("Эта вещь не помещается в ручную кладь");
System.out.println("Вес ручной клади: " + cloth);
} else {
System.out.println("aaaa помогите пбвдзплзпьбвзщыпб");
}
}
}
Вам нужно не только перенести условие проверки веса внутрь тела цикла, но еще добавить переменную totalWeight, которая будет подсчитывать общий вес всех вещей и при превышении этого веса сообщать о том, что все оставшиеся вещи, которые не укладываются в лимит, сдаются в багаж.

Так как при превышении лимита уже не имеет смысл проверять вес оставшихся вещей на соответствие ручной клади, я прописал выход из цикла методом break.

Вы можете подумать над тем, как Вашу программу усовершенствовать. Указать весь ручной клади - 10 кг, и общий допустимый вес багажа пассажира - 25 кг., проверять не только на соответствие веса для размещения в ручную кладь, но и общий допустимый вес всех вещей. Тогда выход из цикла будет происходить только при превышении допустимого веса багажа пассажира.

 public static void main(String[] args) { 


int cloth = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Ведите максимальный вес ручной клади");
int kg = scanner.nextInt();
System.out.println("Введите количество вещей");
int clothes = scanner.nextInt();

int totalWeight = 0; //переменная для подсчета общего веса

for (int i = 0; i < clothes; i++) {
System.out.println("Введите вес вещи");
cloth = scanner.nextInt();

totalWeight +=cloth; //считаем общий вес

if (totalWeight >= kg) {
System.out.println("Эта и все остальные вещи не помещается в ручную кладь");
System.out.println("Вес ручной клади: " + totalWeight);
System.out.println("Сдайте оставшиеся вещи в багаж");

//выход из цикла, дальше вес проверять не нужно,
//при превышении лимита все остальные вещи сдаются в багаж
break;


} else {
System.out.println("Эту вещь можно разместить в ручной клади");
}

}
Ахмед Хаитов
Ахмед Хаитов
838
Лучший ответ
в логику программы не вникал...
но цикл по i у вас просто считывает веса вещей, и ничего с этим не делает, пока не введёте вес последней вещи... и только потом делает какие-то сравнения и что-то выводит на печать... а вам нужно чтоб это было на каждом шагу цикла
потому перенесите закрывающую скобку цикла пониже if-else блока:
Andrianartic Anrianartic
Andrianartic Anrianartic
98 220