2017-01-12 2 views
-3
for (int xGreenBottles = 11, xyGreenBottles = 10; xGreenBottles > 0; xGreenBottles --, xyGreenBottles > 0, xyGreenBottles--) 

    if (xGreenBottles == 0 && xyGreenBottles == 0) 
    { 

    System.out.println(xGreenBottles + " green bottles standing on the wall, " + xGreenBottles + " green bottles standing on the wall, And if 1 green bottle should accidently fall, there'll be " + xyGreenBottles + " green bottles standing on the wall."); 
    } 

     else { 
     System.out.println("There’ll be no green bottles standing on the wall."); 
     } 

Пробовал миллиард разных вещей, но до сих пор ничего не работало. Если это не так близко к чему-либо согласованному, это, вероятно, потому, что я пытался сделать это в течение последних 4 часов, и мои мозги были обжарены. Извините, если длинный system.out.println неловко читать.Для цикла с 2 переменными?

Также - ему необходимо использовать 2 переменные.

редактировать

Хорошо жаль, что я не сделал это понятно - я не был уверен, как сделать «для» есть 2 переменные, как это было бы продолжать давать мне ошибку. В основном дал мне «не выражение» и задавался вопросом, как это исправить.

+0

есть что это такое? – yaitloutou

+0

В чем проблема и в чем вопрос? – sebnukem

+2

'for (int xGreenBottles = 11, xyGreenBottles = 10; xGreenBottles> 0 && xyGreenBottles> 0; xGreenBottles -, xyGreenBottles -)'? Или, возможно, замените '&&' на '||', в зависимости от того, чего вы пытаетесь достичь. – AntonH

ответ

0

для петля содержит 3 частей, разделенных ;:

  • инициализации: где вы инициализацию переменного цикла
  • предела для цикла (это должно быть условием выход которого будет логическим значение)
  • Обновление счетчика на каждой итерации
for(
     int xGreenBottles = 11, xyGreenBottles = 10; 
     (xGreenBottles > 0 && xyGreenBottles > 0); 
     xGreenBottles --, xyGreenBottles-- 
    ) 
{ 
      } 
0

Вы хотите заменить для оператора цикла с этим:

for (int xGreenBottles = 11, xyGreenBottles = 10; xGreenBottles > 0 && xyGreenBottles > 0 ; xGreenBottles--, xyGreenBottles--) 

Также, пожалуйста, имейте в виду, что, если бы я прочитал это правильно, ваш «если» заявление никогда не будет оценивать к истине так как последовательность, в которой для петель оценивали следующим образом:

  1. Инициализация переменных (перед первым;)
  2. Проверьте состояние (между два ;;), циклом выхода, если он не
  3. Выполнить кодовый блок
  4. приращение переменных (крайнюю правую часть цикла, после того, как оба ;;)
  5. Повтора от # 2

это, если любой из двух переменных достигает нуля, цикл будет прерываться без выполнения блока.

Я честно не совсем понимаю, чего вы пытаетесь достичь с помощью этого кода, хотя, возможно, предоставление некоторого «псевдокода» поможет нам помочь вам немного лучше ... будьте счастливы добавить к моему ответу, если есть что-то более конкретно вы ищете!

Надеюсь, это поможет!

0

Вы не использовали правильный формат.

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

Перед первой точкой с запятой инициализации переменных:

int a = 0, b = 0; 

Перед второй точкой с запятой вы установили условия (любое выражение, которое возвращает истину или ложь):

a < 10 && b < 10; 

и в последнем разделе , вы управляете переменными:

a++, b++ 

и все вместе это будет b e:

for (int a = 0, b = 0; a < 10 && b < 10; a++, b++) 

Это просто пример форматирования, благодаря которому вы сможете легко исправить свою проблему.

+0

@ScaryWombat изменил его –

0

Попробуйте это.

for (int xGreenBottles = 11, xyGreenBottles = 10; xGreenBottles > 0 && xyGreenBottles > 0; xGreenBottles--, xyGreenBottles--) 
{ 
    if (xGreenBottles == 0 && xyGreenBottles == 0) 
    { 
    System.out.println(xGreenBottles + " green bottles standing on the wall, " + xGreenBottles + " green bottles standing on the wall, And if 1 green bottle should accidently fall, there'll be " + xyGreenBottles + " green bottles standing on the wall."); 
    } 
    else 
    { 
    System.out.println("There'll be no green bottles standing on the wall."); 
    } 
} 

Я считаю, что вы имели в виду сделать

if (xGreenBottles != 0 && xyGreenBottles != 0) 

Я нашел несколько вопросов, подобных этому, вы могли бы с учетом их проверки и оценки ответов, заданных на тех, для лучшего понимания Java для синтаксиса цикла. (Java for loop multiple variables)

Смежные вопросы