Уроки Java - №26 Двумерные массивы

preview_player
Показать описание
Язык программирования java.

В этом уроке я расскажу вам о двумерных массивах, чем они отличаются от одномерных массивов, как заполняются, используются и полностью выводятся на консоль. А так же мы подробно разберём, как работают вложенные циклы. Приятного просмотра :-)
Рекомендации по теме
Комментарии
Автор

Долго не мог логически понять вывод с помощью цикла for, спасибо большое за объяснение! Удачи в развитии канала, друг!

jknockgaron
Автор

Объясняешь просто великолепно. Дай Бог здоровья тебе.

zaurzaurzaurxau
Автор

спасибо за такое простое объяснение!!!

anahitmouradyan
Автор

Не на оборот? 1й указатель строка, 2й это указатель столбца?

michelleasrolabus
Автор

Я запутался со строками и столбцами. Вы объясняете, что вторая цифра это строка. но если я пишу что-то в этом роде:

int[][] da = {{10, 20, 40}, {11, 12, 13}, {15, 22, 33}};

int i = 0;
int j = 0;

do{
if ( j < (da[i].length - 1)){
System.out.print(da[i][j] + "\t");
j++;
}else if (j < (da[i].length)&&(i < two.length)){
System.out.print(da[i][j] + "\r\n");
j = 0;
i++;
}else{
break;
}
}while(i < da.length);

то у меня получается

10 20 40
11 12 13
15 22 33

а не

10 11 15
20 12 22
40 13 33


ЭЭЭЭ может все таки вторая цифра это столбец???

для аналогии вывел ваш пример:

byte[][] two = new byte[3][3];

two[0][0] = 1; // левый врехний угол, 1-вый столбец, 1-вая строка, как вы утверждаете
two[0][1] = 2; // 1-вый столб, 2-ая строка, как вы утверждаете
two[0][2] = 3; // 1-вый столб, 3-тья строка, как вы утверждаете
two[1][0] = 4; // 2-ой столб, 1-вая строка, как вы утверждаете
two[1][1] = 5; // 2-ой столб, 2-ая строка, как вы утверждаете
two[1][2] = 6; // 2-ой столб, 3-тья строка, как вы утверждаете
two[2][0] = 7; // 3-тьй столб, 1-вая строка, как вы утверждаете
two[2][1] = 8; // 3-тьй столб, 2-рая строка, как вы утверждаете
two[2][2] = 9; // 3-тьй столб, 3-тья строка, как вы утверждаете

int i = 0;
int j = 0;
do{
if ( j < (two[i].length - 1)){
System.out.print(two[i][j] + "\t");
j++;
}else if (j < (two[i].length)&&(i < two.length)){
System.out.print(two[i][j] + "\r\n");
j = 0;
i++;
}else{
break;
}

}while(i < two.length);

получаю однако вот что:

1 2 3
4 5 6
7 8 9

а не как у вас на 11:03. Исправьте пжл. Или объясните мне глупому, что я не понял. Спс за понимание мне просто очень нужно эту тему понять, буду рад вашему ответу.

Видящий-нз
Автор

чувак ты попутал строки со столбцами
m[2][3] - [2] - строка, [3] - столбец

kot_
Автор

А как заполнять двумерный массив через цикл? Не получается почему то.

pyatovmax
Автор

Надеюсь в дальнейшем вы будете объяснять и про графический интерфейс java ..)

zaurzaurzaurxau
Автор

Спасибо огромное! Все понятно! Но, у тебя старая клавиатура (шучу)!!! Но классно объяснил!!!

realistu
Автор

прокатит там length

for(int i=0;i<mas.length; i++) {
for(int k=0;k<mas[i].length; k++) {
System.out.print(mas[i][k]);
}// конец первого цикла
}// конец второго цикла
System.out.println(); //каждая строка с новой строки

vedgray
Автор

все как по книгам и по порядку числа.Блин покажи календарь как сделать хотя бы!!!!

YouMeNow
Автор

честно говоря, по моему, этот урок можно было сделать минут этак в 10, а не в 30

SolidSolarchannel
Автор

вы конечно извините, вроде HD 720, а изображение какое-то не четкое!

vitaliynuclear
Автор

30 минут объяснять, что можно объяснить за 7мин.

sqweezyburn
Автор

+Максим Пятов, например, так:

int[][] mas = new int[10][10];

int f = 0;

for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{

mas[i][j] = f;

f++;

}
}

GMByteJavaTM
Автор

я написал так и все ок:
 byte[][] two = new byte[3][3];
    two[0][0] = 1;
    two[0][1] = 2;
    two[0][2] = 3;
    
    two[1][0] = 14;
    two[1][1] = 55;
    two[1][2] = 66;
    
    two[2][0] = 7;
    two[2][1] = 8;
    two[2][2] = 9;
    
    for (int i=0; i<two.length; i ++)
     {for (int j = 0; j<two.length; j++)
      {
         
      }
    }
Вывелось на консоль:
1
2
3
14
55
66
7
8
9

vitaliynuclear
Автор

мдя... в PHP все гораздо проще и логичнее с массивами :)

uaroot