Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> демонстрация двумерного масива (entry), кто может розьясните... 
:(
    Опции темы
Dazoo
Дата 11.8.2012, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.8.2012

Репутация: нет
Всего: нет



public static void main(String[] args) {
      int twoD[][]= new int [4][5];
      int i, j, k = 0;
      for(i=0; i<4; i++)
       for(j=0; j<5; j++) {
          twoD[i][j] = k;
          k++;
       }
      for(i=0; i<4; i++) {
       for(j=0; j<5; j++)
       System.out.println(twoD[i][j] + " ");
       System.out.println();

Начал изучать Java по Шилдту, и вот столкнулся впервый раз с ситуацией когда не могу понять работу приведеного примера. (Програма нумерует элементы в массиве слева направо, сверху вниз, а затем отображает эти значения.)

Программа выводит значения  от 0 до 19.

Кому не сложно проясните чайнику.

Это сообщение отредактировал(а) Dazoo - 11.8.2012, 22:23
PM MAIL   Вверх
Metal_Heart
Дата 31.8.2012, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Код

...
for(i=0; i<4; i++) {
       for(j=0; j<5; j++)
       //System.out.println(twoD[i][j] + " "); //было
       System.out.print(twoD[i][j] + " "); //надо
       System.out.println();



--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
AntonSaburov
Дата 31.8.2012, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



А что конкретно надо объяснить ? Как программа работает ? Или что-то не работает ?
PM MAIL WWW ICQ   Вверх
Dazoo
Дата 9.9.2012, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.8.2012

Репутация: нет
Всего: нет



AntonSaburov,  

Да хочу понять как она работает, а то вообще пример этот неподдается моему пониманию... Каким образом она вообще выводит значения от 0 до 19?
PM MAIL   Вверх
Mirkes
Дата 10.9.2012, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 586
Регистрация: 18.8.2011
Где: Красноярск

Репутация: 7
Всего: 17



Во прервых в коде не хватает двух строк.
во вторых в нем есть одна ошибка, указанная ранее:

Цитата(Metal_Heart @  31.8.2012,  12:14 Найти цитируемый пост)

Код

...for(i=0; i<4; i++) {
       for(j=0; j<5; j++)
       //System.out.println(twoD[i][j] + " "); //было
       System.out.print(twoD[i][j] + " "); //надо
       System.out.println();highlightSyntax('java_AyNDQ5','java'); 


Ниже полный текст с комментариями
Код

public static void main(String[] args) {
      int twoD[][]= new int [4][5];              // создали матрицу. По умолчанию значения всех элементов 0
      int i, j, k = 0;                           // зачем-то описали три переменных, хотя наиболее существенным является int k=0;
                                                 // k содержит значение, которое будет присвоено СЛЕДУЮЩЕМУ элементу. 
                                                 // Первому по счету будет присвоен 0.
      for(i=0; i<4; i++)                         // перебираем строки матрицы
       for(j=0; j<5; j++) {                      //  перебираем столбцы матрицы
          twoD[i][j] = k;                        // очередному элементу присваиваем значение k
          k++;                                   // увеличиваем k. Поскольку внутренний цикл перебирает элементы по строке (перечисляет
       }                                         // столбцы в строке) то каждый следующий элемент в строке будет на единицу больше.
      for(i=0; i<4; i++) {                       // перебираем строки матрицы. ВАЖНО. в отличии от первого фрагмента есть { у первого цикла
         for(j=0; j<5; j++)                      // перечисляем столбцы
            System.out.print(twoD[i][j] + " ");  // выводим значение очередного элемента, отделяя его пробелом от предыдущего в той-же строке
        System.out.println();                    // Этот оператор во внешнем цикле. Он переходит к новой строке 
                                                 //после вывода всех элементов текущей (внутренний цикл)
      }
}



Это сообщение отредактировал(а) Mirkes - 10.9.2012, 05:59


--------------------
Mirkes
PM MAIL   Вверх
Dazoo
Дата 10.9.2012, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.8.2012

Репутация: нет
Всего: нет



Mirkes, 

Благодарю за  розьяснение,  и такой вопрос, стоит ли на подобном акцентировать много внимания?  А то я взялся учить теорию с учебника и просто не знаю как к какой информации нужно относится... Пользуясь случаем, хочу выложить главные пункты которые я нашел на одном форуме (советы с чего начать изучение), и может кто даст какойто дельный совет или отметит то что упущенно в моем "Вступительном плане  в Javу" .

Типы данных, переменные, массивы
Арифметические операции
Управляющие конструкции (операторы)
Классы (члены, методы, конструкторы класса)
ООП (наследование, инкапсуляция, полиморфизм)
Пакеты
Интерфейсы
Обработка исключений
Строки (class String) и работа с ними
Ввод, вывод (InputStream, OutputStream)
Многопоточность 
Коллекции  (java.util)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0484 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.