предисловие
С:Для многих студентов последнюю статью можно назвать проверкой ваших текущих способностей к логическому мышлению.
Студенты с сильным логическим мышлением могут легко выполнять упражнения с этапами анализа мышления и грамматики. Студенты со слабым логическим мышлением из-за отсутствия соответствующих упражнений и плохого мышления не могут понять написанный ими код, не говоря уже о соблюдении каких-либо спецификаций кода. Однако, если вы внимательно посмотрите на кейс учителя, вы должны быть в состоянии легко понять некоторые эталонные ответы, но вы просто не можете додуматься до этого сами, и даже стать озабоченными и зацикленными (почему вы не можете до этого додуматься, почему могут ли другие подумать об этом?).
Помимо врожденного, логическое мышление естественным образом можно развивать. Метод обучения Учителя Ча — глупый метод: нужно больше практиковаться. Так как вы не можете придумать решение, то вам следует отпустить свое сердце и узнать, как это делают другие, или даже запомнить код, В конце концов, если вы будете делать слишком много, количественные изменения приведут к качественным изменениям, и вы может улучшить свои собственные вещи.
Конечно, этот метод нельзя назвать хорошим, но в настоящее время он подходит для широкой публики.
Учитель Ча сказал:Подобные замечания будут неоднократно упоминаться в более поздних статьях Учителя Ча, и вы не услышите их ни раз, ни два.
В этой статье мы продолжаем изучать структуру лупа, но это более продвинутый способ воспроизведения лупа, поэтому он сложнее. Но не волнуйтесь, мистер Ча приведет вас к реализации дела через анализ идей.
Почему?
Изучив базовую структуру циклов, мы также научились оптимизировать простые регулярные повторяющиеся шаги. Не парьтесь, снова идет новый спрос, посмотрите на график ниже, как его распечатать на консоли с программой?
Разные люди смотрят на проблему с разных сторон. Когда некоторые студенты увидят ее, они подумают: Это требование совсем не сложно, а реализация очень проста. Ознакомьтесь с реализацией, написанной студентами, которых сопровождали в «Нептун». " ниже.
// 第一个图形
for(int i = 0; i < 5; i++){
System.out.println("*****");
}
// 第二个图形
System.out.println(" *****");
System.out.println(" *****");
System.out.println(" *****");
System.out.println(" *****");
System.out.println("*****");
// 第三个图形
System.out.println(" * ");
System.out.println(" *** ");
System.out.println(" ***** ");
System.out.println(" ******* ");
System.out.println("*********");
Кто видит, кто не плачет? В этом нет ничего плохого! Поэтому я виню, что описание требования Учителя Ча неясно, а затем добавляю к требованию еще одно требование: используйте цикл с*
один*
форма для печати этих изображений.
У тебя болит голова? Из-за существующей технологии вы в принципе не можете этого сделать.Одноуровневый цикл не может удовлетворить несколько более сложные потребности.
Обзор
Множественные циклы (вложенные циклы) на самом деле представляют собой тело цикла, содержащее другую полную структуру цикла.
и вложенный, если это одно и то же. Циклы можно вкладывать друг в друга, но в основном не более трех слоев, иначе логика будет путаться, и маленькое проиграет большому. А поскольку они, как правило, имеют двухуровневую вложенность, их часто называют двойными петлями/двойными петлями.
Общий многоконтурный псевдокод выглядит следующим образом:
while (外层循环条件) {
...外层循环操作...
while (内层循环条件) {
...内层循环操作...
}
}
do {
...外层循环操作...
do {
...内层循环操作...
} while (内层循环条件);
} while (外层循环条件);
for (;外层循环条件;) {
...外层循环操作...
for (;内层循环条件;) {
...内层循环操作...
}
}
while (外层循环条件) {
...外层循环操作...
for (;内层循环条件;) {
...内层循环操作...
}
for (;内层循环条件;) {
...内层循环操作...
}
}
Несколько циклов сложнее, чем вложенные ifs. потому чтоВнутренний цикл является частью операции внешнего цикла., поэтому характеристики выполнения программы таковы:Внешний цикл выполняется один раз, а внутренний цикл выполняется один раз.
использовать
Далее Учитель Чжа покажет вам, как использовать несколько петель, и выяснит, как они используются.
печатать прямоугольник
Наш однослойный цикл прежде должен решить требование регулярности, и формат вывода каждой строки относительно стабилен, например следующий вывод:
На этот раз эти сложные графики требуют от нас рассмотрения не только законов строк, но и законов (столбцов) внутри каждой строки.
Регулярный контент должен быть реализован циклами, две регулярности должны использоваться два цикла, три регулярности должны использоваться три цикла и так далее.
Хотя столбцы содержатся в строках,Таким образом, это означает, что цикл, реализующий правило строки, должен содержать цикл, реализующий правило столбца., это сценарий применения нескольких циклов.
Учитель Ча сказал:Вы просто помните правило такого рода требования,Внешний цикл может управлять правилами строк, а внутренний цикл управляет правилами содержимого (столбцов) каждой строки..
Анализ мыслей:
-
Согласно требованиям, строки и столбцы имеют повторяющийся закон с использованием нескольких циклов.
-
Определите компоненты двух петель в этом случае
- внешний цикл
- Состояние цикла:
<= 5
- Операция цикла: внутренний цикл, перенос в конце каждой строки
- Состояние цикла:
- внутренняя петля
- Состояние цикла:
<= 5
- Циклическая операция: распечатать каждый
*
- Состояние цикла:
- внешний цикл
-
Поскольку оба имеют фиксированное количество циклов, примените синтаксис цикла for для написания кода.
-
Проверьте, может ли цикл нормально завершиться
// 外层循环,执行五次,每次输出一行*
for (int i = 1; i <= 5; i++) {
// 内层循环,执行五次,每次输出一个*
for (int j = 1; j <= 5; j++){
// 不换行输出*
System.out.print("*");
}
// 每行结尾换行
System.out.println();
}
напечатать прямоугольный треугольник
Анализ мыслей:
-
Согласно требованиям, строки и столбцы имеют повторяющийся закон с использованием нескольких циклов.
-
Определите компоненты двух петель в этом случае
-
внешний цикл
- Состояние цикла:
<= 5
- Операция цикла: внутренний цикл, перенос в конце каждой строки
- Состояние цикла:
-
внутренняя петля
-
Состояние цикла:
2 * 外层循环变量 - 1
каждая строка
*
Закон является наиболее распространенным законом, когда мы изучаем математические последовательности, первая строка: 1, вторая строка: 3, третья строка: 5, четвертая строка: 7, пятая строка: 9... -
Циклическая операция: распечатать каждый
*
-
-
-
Поскольку оба имеют фиксированное количество циклов, примените синтаксис цикла for для написания кода.
-
Проверьте, может ли цикл нормально завершиться
// 外层循环
for (int i = 1; i <= 5; i++) {
// 内层循环
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
// 每行结尾换行
System.out.println();
}
распечатать равнобедренный треугольник
Анализ мыслей:
-
Согласно требованиям, строки и столбцы имеют повторяющийся закон с использованием нескольких циклов.
Часть равнобедренного треугольника такая же, как и прямоугольный треугольник сейчас Вы можете увидеть, если изменить эту фигуру, верно?
Но этот множественный цикл не может быть просто двумя циклами, нам нужно подготовить еще один цикл, чтобы в каждой строке печатать обычные пробелы.
-
Определите компоненты трех петель в этом случае
- внешний цикл
- Состояние цикла:
<= 5
- Операция цикла: внутренний цикл 1, внутренний цикл 2, новая строка в конце каждой строки
- Состояние цикла:
- Внутренний цикл 1:
- Состояние цикла:
<= 5 - 外层循环变量
- Циклическая операция: печать пробела
- Состояние цикла:
- Внутренний цикл 2:
- Состояние цикла:
2 * 外层循环变量 - 1
- Циклическая операция: распечатать каждый
*
- Состояние цикла:
- внешний цикл
-
Поскольку три — это фиксированное количество циклов, примените синтаксис цикла for для написания кода.
-
Проверьте, может ли цикл нормально завершиться
// 外层循环
for (int i = 1; i <= 5; i++) {
// 内层循环1
for(int j = 1; j <= 5 - i; j++){
System.out.print(" ");
}
// 内层循环2
for (int j = 1;j <= 2 * i - 1; j++){
System.out.print("*");
}
// 每行结尾换行
System.out.println();
}
распечатать параллелограмм
Анализ мыслей:
- Согласно требованиям, строки и столбцы имеют повторяющийся закон с использованием нескольких циклов.
- Определите компоненты трех петель в этом случае
- внешний цикл
- Состояние цикла:
<= 5
- Операция цикла: внутренний цикл 1, внутренний цикл 2, новая строка в конце каждой строки
- Состояние цикла:
- Внутренний цикл 1:
- Состояние цикла:
<= 5 - 外层循环变量
- Циклическая операция: печать пробела
- Состояние цикла:
- Внутренний цикл 2:
- Состояние цикла:
<= 5
- Циклическая операция: распечатать каждый
*
- Состояние цикла:
- внешний цикл
- Поскольку три — это фиксированное количество циклов, примените синтаксис цикла for для написания кода.
- Проверьте, может ли цикл нормально завершиться
// 外层循环
for (int i = 1; i <= 5; i++) {
// 内层循环1
for (int k = 1; k <= 5 - i; k++) {
System.out.print(" ");
}
// 内层循环2
for (int j = 1; j <= 5; j++) {
System.out.print("*");
}
// 每行结尾换行
System.out.println();
}
распечатать таблицу умножения девять-девять
Анализ мыслей:
-
Согласно требованиям, строки и столбцы имеют повторяющийся закон с использованием нескольких циклов.
-
Определите компоненты двух петель в этом случае
-
внешний цикл
- Состояние цикла:
<= 9
- Операция цикла: внутренний цикл, перенос в конце каждой строки
- Состояние цикла:
-
внутренняя петля
-
Состояние цикла:
<= 外层循环的循环变量
Первая строка печатает 1, вторая строка печатает 2, третья строка печатает 3....
-
Операция цикла: распечатать операцию умножения
- Первый операнд: переменная цикла внутреннего цикла
- Второй операнд: переменная цикла внешнего цикла
-
-
-
Поскольку оба имеют фиксированное количество циклов, примените синтаксис цикла for для написания кода.
-
Проверьте, может ли цикл нормально завершиться
// 外层循环
for (int i = 1; i <= 9; i++) {
// 内层循环
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + (j * i) + "\t");
}
// 每行结尾换行
System.out.println();
}
Проверьте вопрос учителя
распечатать цифровой равнобедренный треугольник
нужно:Используйте несколько циклов для вывода следующего графика в соответствии с числами, введенными пользователем.
Распечатайте таблицу умножения девяноста девяти в обратном порядке.
нужно:Используйте несколько циклов, чтобы распечатать таблицу умножения девять-девять в обратном порядке.
печать ромб
нужно:Используйте несколько циклов для вывода следующего графика.
постскриптум
Вы просто следуете шагам анализа мышления и опускаете свое сердце, чтобы понять это. Не изучите один и не забудьте один.В следующей статье Учитель Ча познакомит вас с профессиональным инструментом, чтобы вы могли наблюдать за выполнением программы строка за строкой.
Учитель Ча сказал:При изучении технологии г-н Ча всегда следовал следующим шагам: сначала использовать самую простую демонстрацию, чтобы запустить ее, затем изучить ее наиболее часто используемый API и конфигурацию, чтобы вы могли ее использовать, и, наконец, на основе квалифицированного использования, в Попробуйте прочитать его исходный код в свободное время, чтобы понять механизм его работы и причины некоторых проблем, и в то же время извлечь уроки из этих технических реализаций, чтобы улучшить свой код.
Таким образом, в статье г-на Ча ранняя стадия представляет собой в основном небольшой белый текст, и лишь небольшое количество исследований исходного кода перемежается. Конечно, когда Xiaobaiwen обновляется больше, она вам все равно нравится, а исходный код некоторых технологий будет время от времени анализироваться на более позднем этапе.