Skip to content

Commit 557aa69

Browse files
committed
[LES-9.4/st-compl] cycle-in-cycle
Practice with "nested" cycles. Displaying "stars", processing "matrix". Worth noting: - all this lesson/practice (alternative solution in task 1 and 2). FS-dev: B-3 / JS basic
1 parent a4fc8e0 commit 557aa69

File tree

1 file changed

+87
-0
lines changed
  • full-stack-dev/3-js-basic/9-cycles/9-4-cycle-in-cycle

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
// Задание 1:
2+
// Используя вложенные циклы, выведи в консоль прямоугольный треугольник из символов *. Высота треугольника должна задаваться переменной. Например, если height = 5, вывод должен быть таким:
3+
// *
4+
// **
5+
// ***
6+
// ****
7+
// *****
8+
// Подсказка: Подумай, как связаны номер строки (который будет считать внешний цикл) и количество звездочек в этой строке (за которое будет отвечать внутренний цикл).
9+
10+
const height = 5;
11+
const starArr = [];
12+
const starStr = '*';
13+
14+
for (let i = 1; i <= height; i++) {
15+
starArr.push(starStr);
16+
console.log(starArr.join(''));
17+
}
18+
19+
console.log(starArr); // [ '*', '*', '*', '*', '*' ]
20+
21+
/*
22+
*
23+
**
24+
***
25+
****
26+
*****
27+
*/
28+
29+
// ?? альтернативное решение
30+
for (let i = 1; i <= height; i++) {
31+
let starLine = ''; // !! основополагающий момент.. строка будет на каждой [i] итерации создаваться заново
32+
33+
for (let j = 1; j <= i; j++) {
34+
starLine += '*';
35+
}
36+
37+
console.log(starLine); // ..в итоге, получится нужный треугольник
38+
}
39+
40+
// Задание 2:
41+
// У тебя есть матрица с числами. Напиши код, который посчитает сумму всех чисел в этой матрице и выведет ее в консоль.
42+
// Ожидаемый результат в консоли: "Общая сумма всех элементов: 62"
43+
44+
const numberMatrix = [
45+
[10, 2, 7],
46+
[5, 10, 20],
47+
[1, 3, 4],
48+
];
49+
let totalSum = 0;
50+
51+
for (let i = 0; i < numberMatrix.length; i++) {
52+
for (let j = 0; j < numberMatrix[i].length; j++) {
53+
totalSum += numberMatrix[i][j];
54+
}
55+
}
56+
57+
console.log(`Общая сумма всех элементов: ${totalSum}`); // Общая сумма всех элементов: 62
58+
59+
// ?? альтернативное решение (лаконичнее с for...of)
60+
for (const row of numberMatrix) {
61+
for (const number of row) {
62+
totalSum += number;
63+
}
64+
}
65+
66+
// Задание 3:
67+
// Представь, что тебе нужно поздороваться с каждым пользователем, используя каждую возможную форму приветствия. У тебя есть два отдельных массива.
68+
// Напиши код, который сгенерирует и выведет в консоль все возможные комбинации "приветствие + имя".
69+
// Подсказка: Внешний цикл может перебирать приветствия, а внутренний — имена (или наоборот, результат будет тот же). На каждой итерации внутреннего цикла у тебя будет одно конкретное приветствие и одно конкретное имя.
70+
71+
const greetings = ['Привет', 'Здравствуйте', 'Добрый день'];
72+
const users = ['Алиса', 'Петр'];
73+
74+
for (let i = 0; i < greetings.length; i++) {
75+
for (let j = 0; j < users.length; j++) {
76+
console.log(`${greetings[i]}, ${users[j]}`);
77+
}
78+
}
79+
80+
/*
81+
Привет, Алиса
82+
Привет, Петр
83+
Здравствуйте, Алиса
84+
Здравствуйте, Петр
85+
Добрый день, Алиса
86+
Добрый день, Петр
87+
*/

0 commit comments

Comments
 (0)