2013-10-02 8 views
-3

Очень простой, но я не могу понять, что мне просто нужно перевести циклы while в то время как. Цель состоит в том, чтобы напечатать 1-9 и 9-1 один как таковой «1,22,333,4444» и т. Д. Спасибо, если вы мне поможете!Перевести while while while

int y = 1; 
int x = 1; 
while (x < 10) { 
    y = 1; 
    while (y <= x) { 
     y++; 
     System.out.print(x + ""); 
    } 
    System.out.println(); 
    x++; 
} 

int a = 9; 
int b = 1; 
while (a >=1) { 
    b = 1; 
    while (b<= a) { 
     b++; 
     System.out.print(a + ""); 
    } 
    System.out.println(); 
    a--; 
} 

Моя попытка печатает 1-9, но как одиночные числа и бесконечно работает, но ничего не печатает после 9 в первый раз.

int c = 1; 
int d =1; 
do { System.out.print(c +""); 
c++; 
System.out.println(); 
} 
while (c<10);{ 
    y=1; 
    while (d<=c); 
} 
+1

1) Для лучшей помощи рано, опубликовать [SSCCE] (http://sscce.org/). 2) Используйте последовательный и логический отступ для кодовых блоков. Отступ кода предназначен для того, чтобы помочь людям понять поток программы. 3) Единственная пустая строка пробела в исходном коде * всегда * достаточно. Пустые строки после '{' или before '}' также типично избыточны. –

+1

Вам не хватает второго заявления «сделать». Оператор 2nd while фактически представляет собой цикл while, который не выполняет никакого кода, поскольку содержимое переменных не изменяется, оно эквивалентно «while (true)»; (также вы, похоже, не меняете значение d когда и y не определено) –

+0

Слишком много точек с запятой – pamphlet

ответ

0

Похоже мы делаем домашнее задание ...

public class Test { 
    public static void main(String[] args) { 
     int c = 1; 
     do { 
      int d =1; 
      do{ 
       System.out.print(c); 
       d++; 
      } while (c>=d); 
      System.out.println(""); 
     c++;   
     } 
     while (c<10); 
    } 
} 
+0

Я ценю это, но я сказал, что не ожидаю, что вы сделаете это для меня. Я один из немногих, кто понимает, что мне действительно нужно знать, как это сделать. Я не понимаю, что я просто пытался что-то идентичное тому, насколько я знаю, и это не сработало, оно считалось бесконечно. Скобка в неправильном месте, вероятно, вызвала это право? – user2836944

+0

Ваш бесконечный цикл, безусловно, исходит отсюда: while (d <= c); У вас есть время, которое ничего не делает, поэтому условие никогда не меняется. Если d <= c, это будет бесконечно ... –

+0

Ahh, что имеет смысл сейчас. Я ценю вашу помощь. Я знаю, что это была тривиальная ошибка начинающего, но все начинают где-то вправо? Я буду вносить свой вклад в сообщество, когда узнаю больше. Еще раз спасибо. – user2836944

0

Это основное использование:

x=1; 
do{ 
    //hello 
    x++; 
} while(x<=10); 

Применить его, как вам нужно. Мы не можем делать домашнее задание.

+0

Я понимаю и ценю это, и я не ожидаю, что вы это сделаете, я просто ищу руководство в правильном направление. – user2836944

0

Что вы хотите, это вложенный do-while.

int x = 1; 

do { 
    int p = 0; 
    do { 
     System.out.print(x); 
    } 
    while(p < x) 
    System.out.println(); 
    x++; 
} 
while(x < 10) 

Но я, вероятно, следует добавить for цикл будет сделать гораздо больше смысла здесь:

for(int x = 0; x < 10; x++) 
{ 
    for(int p = 0; p < x; p++) 
    { 
     System.out.print(x); 
    } 
    System.out.println(); 
} 
0

Как вы хотите работать в бесконечном цикле просто использовать:

do { 
     int c = 1; 
     do { 
      System.out.println(c); 
      c++; 

     } while (c < 10); 
    } while (true); 
0

Это будет работать бесконечно и печатать нужные строки:

 StringBuilder result1= new StringBuilder(); 
    StringBuilder result2 = new StringBuilder(); 

    do 
    { 
     for(int i = 1; i < 10; i++) 
     { 
      for(int j = 0; j < i; j++) 
      { 
       result1.append(i); 
      } 
      result1.append(","); 
     } 

     for(int i = 9; i > 0; i--) 
     { 
      for(int j = 0; j < i; j++) 
      { 
       result2.append(i); 
      } 
      result2.append(","); 
     } 

     System.out.println(result1); 
     System.out.println(result2); 
    }while(true); 
Смежные вопросы