При iterating чрез масив x с подобренза цикъла какво представляват y и z и как работи цикъла. Ето кода, който написах, работи, но не разбирам точно защо и как работи.Ако някой би могъл да обясни синтаксиса на for loop при показването на многоизмерния масив, бих го оценил.
// enhanced for loop
String[][] x =
{
{"a", "a^2", "a^3"},
{"1", "1", "1"},
{"2", "4", "8"},
{"3", "9", "27"},
{"4", "16", "64"}
};
for (String[] y: x)
{
for (String z: y)
{
System.out.print(z + "t");
}
System.out.println();
Отговори:
1 за отговор № 1Усъвършенстваният за цикъл на масив е еквивалентен на iterating над индексите на масива в нормален за цикъл:
for (int i=0; i<x.length; i++)
{
String[] y = x[i];
for (int j=0; j<y.length; j++)
{
String z = y[j];
System.out.print(z + "t");
}
System.out.println();
}
Когато итерирате над два матрица, всеки елемент на външния масив е сам по себе си масив.
1 за отговор № 2
for (String[] y: x)
Means "за всеки String масив (наречен y) в масива от масиви (наречен x)".
Така например y [0] е {"a", "a^2", "a^3"}
Тогава по подобен начин, for (String z: y)
означава "за всеки String, наречен z в String масива, който преди това сме определили като y.
Така z [0] при първото преминаване на y е "a". Тогава z [1] е "a ^ 2" и z [2] е "a ^ 3".
Това завършва повторението на първото вписване на y, а ние повтаряме със следващия и др.
0 за отговор № 3
това, което се случва, е твоето първо for (String[] y: x)
вашето преминаване през всеки елемент в х, тези, които се случват да бъдат от тип String [], масиви от низове и за всяка една от темите, която итера над елемента си от втората линия for (String z: y)
, и така y ще бъде: ("a", "a ^ 2", "a ^ 3"), ("1", "1", "1"), ("2", "4", "8"), , , и стойностите за z ще бъдат a, a ^ 2, a ^ 3, 1 ....
0 за отговор № 4
Бихте могли концептуално да мислите за 2D масив да бъдемасив от масиви. Всеки елемент на масив от ниво 1 съхранява позоваване на друг масив и всеки елемент от масив от ниво 2 е действителните данни, в този случай "int".