Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 24.02.2015
Сообщений: 35
1

Вывод через while

25.04.2016, 00:21. Показов 1097. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Подскажите пожалуйста в чем может быть проблемма и почему:
есть задача сделать квадрат 10 на 10 с одной буквой - 10 в одной строке, без пробелок, и 10 строк с пробелами между ними, все сделать через цикл "while". Вот то, что пишу, и вроде должно бы выводить то, что нужно, но не выводит:

Java
1
2
3
4
5
6
7
8
9
10
11
12
String s = "S";
        int k=0;
        int i=1;
        while(i<10){//зашли в цикл 1
            while(k<10){//сразу зашли во второй
            System.out.print(s);//напечатали букву
            k++;//добежали до 10 и напечатали 10 раз букву
            }//вышли из цикла
            System.out.println("s");//спрыгнули на вторую строку
            i++;//увеличили переменную в первом цикле, вернулись в начало и опять зашли во второй?...
            
        }
на выходе эклипс выдает:
ssssssssss
s
s
... и тд - доводит кол-во строк до 10, но в каждой только по одной букве - почему так, почему не возвращается в начало цикла 1 и снова не заходит в цикл 2?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2016, 00:21
Ответы с готовыми решениями:

Ввод массивов через множество textBox, подсчёт суммы, и вывод через listBox. Ошибка при вводе через textBox
Создал я кучу текст боксов, там происходит ввод каждого элемента массива. И вывод через листбокс ...

Не работает вывод textBox1 через метод. Только через нажатие button1_Click
Не работает вывод textBox1 через метод. Только через нажатие button1_Click НЕ РАБОТАЕТ public...

Заполнение массива через rand и вывод на экран через указатели
Учитель задал заполнить массивы и случайными числами и вывезти на экран через указатели, через...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Код программы: const n=6; var a:array of byte; i,j,k,x:byte; begin for i:=1 to n do ...

4
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
25.04.2016, 01:04 2
Цитата Сообщение от Dune_Devastator Посмотреть сообщение
и снова не заходит в цикл 2
а чему равно k в тот момент, когда программа начинает печатать вторую строку?

Добавлено через 8 минут
Цитата Сообщение от Dune_Devastator Посмотреть сообщение
доводит кол-во строк до 10
это кстати тоже спорно
1
1 / 1 / 0
Регистрация: 24.02.2015
Сообщений: 35
25.04.2016, 01:05  [ТС] 3
Цитата Сообщение от КОП Посмотреть сообщение
а чему равно k в тот момент, когда программа начинает печатать вторую строку?
спасибо за подсказку!!!
поменял первоначальное значение "i = 0"(выводило 9 строк вместо 10)
и дописал в цикле k=1;
и все заработало...
а можете еще объяснить, почему, когда отработал вложенный цикл, и первый вайл с увеличением переменной запустился по новой, переменная "k" осталась равной 10 - разве цикл не должен был отработать и забыть все, что и как в нем происходило, раз мы из него вышли???

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
String s = "S";
        int k=1;
        int i=0;
        while(i<10){
            while(k<10){
            System.out.print(s);
            k++;
            }
            System.out.println(s);
            i++;
            k=1;
            
        }
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
25.04.2016, 01:15 4
Цитата Сообщение от Dune_Devastator Посмотреть сообщение
разве цикл не должен был отработать и забыть все, что и как в нем происходило, раз мы из него вышли???
он "забудет" только то, что создано внутри него, а k объявлена перед ним
Java
1
2
3
4
5
        ...
            while(i<10){//зашли в цикл 1
            int k = 1; //А вот тут она внутри внешнего цикла
            while(k<10){//сразу зашли во второй
            ...
Для подобных задач for гораздо нагляднее/удобнее (разумеется если цель не научиться использовать while, хотя пример нехарактерный для такой задачи)
1
1 / 1 / 0
Регистрация: 24.02.2015
Сообщений: 35
25.04.2016, 01:23  [ТС] 5
Добавлено через 49 секунд
Цитата Сообщение от КОП Посмотреть сообщение
он "забудет" только то, что создано внутри него, а k объявлена перед ним
Java
1
2
3
4
5
        ...
            while(i<10){//зашли в цикл 1
            int k = 1; //А вот тут она внутри внешнего цикла
            while(k<10){//сразу зашли во второй
            ...
Для подобных задач for гораздо нагляднее/удобнее (разумеется если цель не научиться использовать while, хотя пример нехарактерный для такой задачи)
Ну задача в ходе обучения состояла именно в использовании данного цикла.
Вроде бы разобрался немного... и с переменной, создаваемой вне циклов , и внутри самого цикла...

Спасибо за помощь!!!
0
25.04.2016, 01:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2016, 01:23
Помогаю со студенческими работами здесь

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Дана квадратная вещественная матрица размерности n. Построить матрицу вектор (одномерный массив)...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Оформить с использованием функций и процедур. Нахождение основных значений оформить через функцию,...

Нахождение основных значений оформить через функцию, а вывод на печать – через процедуру
Оформить с использованием функций и процедур. Нахождение основных значений оформить через...

Вывод таблицы из бд MySQL через php в браузер, с возможностью вноса и изменения данных прямо через ячейки
Всем здравствуйте, в общем, такая вот проблема: Есть код: &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru