Carder
Professional
- Messages
- 2,619
- Reaction score
- 1,882
- Points
- 113

Java - популярный компьютерный язык.
Вы когда-нибудь задумывались, как работают компьютерные программы? Вы когда-нибудь хотели научиться писать собственные компьютерные программы? Если вам 14 лет и вы надеетесь научиться писать свою первую игру, или вам 70 лет и вы 20 лет интересуетесь компьютерным программированием, эта статья для вас. В этой теме я научу вас, как работают компьютерные программы, научив вас программировать на языке программирования Java.
Чтобы научить вас компьютерному программированию, я с самого начала сделаю несколько предположений:
- Я предполагаю, что вы сейчас ничего не знаете о компьютерном программировании. Если вы что-то уже знаете, то первая часть этой статьи покажется вам элементарной. Не стесняйтесь переходить вперед, пока не найдете то, чего не знаете.
- Я предполагаю, что вы что-то знаете об используемом вами компьютере. То есть я предполагаю, что вы уже знаете, как редактировать файл, копировать и удалять файлы, переименовывать файлы, находить информацию в своей системе и т.д.
- Для простоты я предполагаю, что вы используете машину под управлением Windows 95, 98, 2000, NT или XP. Для людей, работающих с другими операционными системами, должно быть относительно просто сопоставить концепции с ними.
- Я предполагаю, что у вас есть желание учиться.
Сказав это, мы готовы к работе. Давайте начнем!
Немного терминологии
Имейте в виду, что я предполагаю, что вы ничего не знаете о программировании. Вот несколько терминов, которые помогут вам понять:- Компьютерная программа. Компьютерная программа - это набор инструкций, которые точно говорят компьютеру, что ему делать. Инструкции могут указывать компьютеру сложить набор чисел или сравнить два числа и принять решение на основе результата или чего-то еще. Но компьютерная программа - это просто набор инструкций для компьютера, как рецепт - это набор инструкций для повара, или музыкальные ноты - это набор инструкций для музыканта. Компьютер точно следует вашим инструкциям и в процессе делает что-то полезное - например, балансирует чековую книжку, отображает игру на экране или реализует текстовый процессор.
- Язык программирования. Чтобы компьютер мог распознать инструкции, которые вы ему даете, эти инструкции должны быть написаны на языке, понятном компьютеру, - языке программирования. Существует множество языков программирования - Fortran, Cobol, Basic, Pascal, C , C ++, Java, Perl - точно так же, как есть много разговорных языков. Все они по-разному выражают примерно одни и те же понятия.
- Компилятор - компилятор переводит компьютерную программу, написанную на понятном человеку компьютерном языке (например, Java), в форму, которую компьютер может выполнить. Вероятно, вы видели EXE-файлы на своем компьютере. Эти EXE-файлы являются выходными данными компиляторов. Они содержат исполняемые файлы - машиночитаемые программы, переведенные из понятных человеку программ.
Скачивание компилятора Java
Чтобы настроить среду разработки Java на вашем компьютере - вы "разрабатываете" (пишете) компьютерные программы, используя "среду разработки" - вам необходимо выполнить следующие шаги:- Загрузите большой файл, содержащий среду разработки Java (компилятор и другие инструменты).
- Загрузите большой файл, содержащий документацию по Java.
- Если у вас еще нет WinZip (или его эквивалента) на вашем компьютере, вам нужно будет загрузить большой файл, содержащий WinZip, и установить его.
- Установите среду разработки Java.
- Установите документацию.
- Настройте несколько переменных среды.
- Проверьте все.
Шаг 1. Загрузите среду разработки Java
Перейдите на страницу http://java.sun.com/j2se/1.4.2/download.html. Загрузите программное обеспечение SDK, щелкнув ссылку «Загрузить J2SE SDK». Вам будет показано лицензионное соглашение. Щелкните "Принять". Выберите свою операционную систему и загрузите файл в каталог загрузки. Это огромный файл, и его загрузка через обычный телефонный модем займет несколько часов . Следующие два файла тоже большие.
Шаг 2. Загрузите документацию по Java.
Загрузите документацию, выбрав свою операционную систему и щелкнув ссылку документации SDK 1.4.1.
Шаг 3 - Загрузите и установите WinZip
Если на вашем компьютере нет версии WinZip или аналогичной, перейдите на страницу http://www.winzip.com/ и загрузите пробную копию WinZip. Запустите EXE, который вы получите, чтобы установить его. Мы воспользуемся им чуть позже, чтобы установить документацию.
Шаг 4 - Установите комплект разработчика
Запустите файл j2sdk-1_4_1 - *. Exe, который вы загрузили на шаге 1. Он автоматически распакует и установит комплект разработчика.
Шаг 5 - Установите документацию
Прочтите инструкции по установке для документации. Они посоветуют вам переместить файл документации в тот же каталог, где находится только что установленный комплект разработчика. Разархивируйте документацию, и она окажется в нужном месте.
Шаг 6 - Настройте свою среду
В соответствии с инструкциями на этой странице вам необходимо изменить переменную пути. Это проще всего сделать, открыв командную строку MS-DOS и набрав PATH, чтобы узнать, какой путь установлен в данный момент. Затем откройте autoexec.bat в Блокноте и внесите изменения в PATH, указанные в инструкциях.
Шаг 7 - Тест
Теперь вы сможете открыть другое окно MS-DOS и ввести javac . Если все настроено правильно, то вы должны увидеть двухстрочный блок текста, в котором рассказывается, как использовать javac . Это означает, что вы готовы к работе. Если вы видите сообщение «Неверная команда или имя файла», это означает, что вы не готовы к работе. Выясните, что вы сделали не так, перечитав инструкцию по установке. Убедитесь, что PATH установлен правильно и работает. Вернитесь и перечитайте «Кредо программиста» выше и проявите настойчивость, пока проблема не будет решена.
Теперь вы являетесь счастливым обладателем машины, которая может компилировать программы на Java. Вы готовы приступить к написанию программного обеспечения!
Кстати, одна из вещей, которые вы только что распаковали, - это демонстрационный каталог, полный хороших примеров. Все примеры готовы к запуску, поэтому вы можете найти каталог и поиграть с некоторыми из них. Многие из них издают звуки, поэтому обязательно включайте динамики. Чтобы запустить примеры, найдите страницы с такими именами, как example1.html, и загрузите их в свой обычный веб-браузер.
Ваша первая программа

Ваша первая программа будет короткой и приятной. Он собирается создать область рисования и провести по ней диагональную линию. Для создания этой программы вам потребуется:
- Откройте Блокнот и введите (или вырежьте и вставьте) программу
- Сохраните программу
- Скомпилируйте программу с помощью компилятора Java, чтобы создать апплет Java.
- Устраните любые проблемы
- Создайте веб-страницу HTML, чтобы "удерживать" созданный вами Java-апплет.
- Запустите Java-апплет
Code:
import java.awt.Graphics;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
g.drawLine(0, 0, 200, 200);
}
}
Шаг 1 - Введите программу
Создайте новый каталог для хранения вашей программы. Откройте Блокнот (или любой другой текстовый редактор, который может создавать файлы TXT). Введите или вырежьте и вставьте программу в окно Блокнота. Это важно: когда вы набираете программу, регистр имеет значение. Это означает, что вы должны вводить символы верхнего и нижнего регистра точно так, как они отображаются в программе. Просмотрите кредо программиста выше. Если вы не наберете его ТОЧНО, как показано, он не будет работать.
Шаг 2 - Сохраните файл
Сохраните файл с именем FirstApplet.java в каталоге, который вы создали на шаге 1. Регистр имеет значение в имени файла. Убедитесь, что буквы "F" и "A" в верхнем регистре, а все остальные символы - в нижнем регистре, как показано.
Шаг 3 - Скомпилируйте программу
Откройте окно MS-DOS. Измените каталог («cd») на каталог, содержащий FirstApplet.java. Тип:
Code:
javac FirstApplet.java
Дело имеет значение! Либо это сработает, и в этом случае в окно ничего не будет напечатано, либо будут ошибки. Если ошибок нет, в каталоге рядом с FirstApplet.java будет создан файл с именем FirstApplet.class.
(Убедитесь, что файл сохранен с именем FirstApplet.java, а не FirstApplet.java.txt. Это проще всего сделать, набрав dir в окне MS-DOS и посмотрев на имя файла. Если он имеет расширение .txt , удалите его, переименовав файл. Или запустите проводник Windows и выберите "Параметры" в меню "Просмотр". Убедитесь, что НЕ установлен флажок "Скрыть расширения файлов MD-DOS для зарегистрированных типов файлов", а затем посмотрите на имя файла. с проводником. При необходимости измените его.)
Шаг 4 - Устраните проблемы
Если есть ошибки, исправьте их. Сравните вашу программу с программой выше и убедитесь, что они точно совпадают. Продолжайте перекомпилировать, пока не увидите ошибок. Если кажется, что javac не работает, вернитесь к предыдущему разделу и исправьте установку.
Шаг 5 - Создайте HTML-страницу
Создайте HTML-страницу для размещения апплета. Откройте другое окно Блокнота. Введите в него следующее:
Code:
<html>
<body>
<applet code=FirstApplet.class width=200 height=200>
</applet>
</body>
</html>
Если вы никогда раньше не работали с HTML, прочтите, как работает веб-страница. Апплет тег как доступ апплет Java с веб - страницы.
Шаг 6 - Запустите апплет
В окне MS-DOS введите:
Code:
appletviewer applet.htm
Вытяните окно просмотра апплетов немного больше, чтобы увидеть всю строку. Вы также должны иметь возможность загрузить HTML-страницу в любой современный браузер, такой как Netscape Navigator или Microsoft Internet Explorer, и увидеть примерно то же самое.
Вы успешно создали свою первую программу!
Понимание того, что только что произошло

Так что же только что произошло?
Во-первых, вы написали фрагмент кода для чрезвычайно простого Java-апплета. Апплет - это программа Java, которая может работать в веб-браузере, в отличие от приложения Java , которое представляет собой автономную программу, которая работает на вашем локальном компьютере (приложения Java немного сложнее и несколько менее популярны, поэтому мы начнем с апплетами). Мы скомпилировали апплет с помощью javac. Затем мы создали чрезвычайно простую веб-страницу, чтобы «удерживать» апплет. Мы запускали апплет с помощью appletviewer, но вы также можете легко запустить его в браузере.
Сама программа занимает около 10 строк:
Code:
import java.awt.Graphics;
открытый класс FirstApplet расширяет java.applet.Applet
{
public void paint (Графика g)
{
g.drawLine (0, 0, 200, 200);
}
}
Это самый простой Java-апплет, который вы можете создать. Чтобы полностью понять это, вам нужно научиться изрядно, особенно в области методов объектно-ориентированного программирования. Поскольку я предполагаю, что у вас нулевой опыт программирования, я бы хотел, чтобы вы сосредоточили свое внимание только на одной строке в этой программе:
Code:
g.drawLine (0, 0, 200, 200);
(Обратите внимание, что на странице HTML мы установили размер окна апплета на шаге 5 выше, чтобы иметь ширину 200 и высоту 200.)
В этой программе мы вызвали метод (также известный как функция) под названием drawLine и передали ему четыре параметра (0, 0, 200, 200). Строка заканчивается точкой с запятой. Точка с запятой действует как точка в конце предложения. Строка начинается с g., что означает, что мы хотим вызвать метод с именем drawLine для конкретного объекта с именем g (который, как вы видите, одна строка относится к классу Graphics - мы более подробно рассмотрим классы и методы классов позже в этой статье).
Метод - это просто команда, она говорит компьютеру что-то сделать. В этом случае drawLine сообщает компьютеру провести линию между указанными точками: (0, 0) и (200, 200). Вы можете представить окно как имеющее координату 0,0 в верхнем левом углу с положительными осями X и Y, простирающимися вправо и вниз. Каждая точка на экране (каждый пиксель ) соответствует одному шагу шкалы.
Попробуйте поэкспериментировать, используя разные числа для четырех параметров. Измените число или два, сохраните изменения, перекомпилируйте с помощью javac и перезапустите после каждого изменения в appletviewer , и посмотрите, что вы обнаружите.
Какие еще функции доступны помимо drawLine ? Вы узнаете это, просмотрев документацию по классу Graphics . Когда вы установили комплект разработки Java и распаковали документацию, один из файлов, выгруженных в процессе, называется java.awt.Graphics.html, и он находится на вашем компьютере. Это файл, который объясняет класс Graphics . На моей машине точный путь к этому файлу - D: \ jdk1.1.7 \ docs \ api \ java.awt.Graphics.html. На вашем компьютере путь может быть немного другим, но близким - это зависит от того, где именно вы установили что-то. Найдите файл и откройте его. Вверху этого файла есть раздел «Указатель методов». Это список всех методов, поддерживаемых этим классом. Метод drawLine - один из них, но вы можете увидеть и многие другие. Вы можете рисовать, среди прочего:
- Линии
- Дуги
- Овалы
- Полигоны
- Прямоугольники
- Струны
- Символы
Code:
g.drawLine (0, 0, 200, 200);
g.drawRect (0, 0, 200, 200);
g.drawLine (200, 0, 0, 200);
Он нарисует прямоугольник с двумя диагоналями (убедитесь, что окно достаточно велико, чтобы увидеть все). Попробуйте нарисовать другие фигуры. Прочтите и попробуйте изменить цвет с помощью метода setColor. Например:
Code:
import java.awt.Graphics;
import java.awt.Color;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillRect(0, 0, 200, 200);
g.setColor(Color.black);
g.drawLine(0, 0, 200, 200);
g.drawLine(200, 0, 0, 200);
}
}
Обратите внимание на добавление новой строки импорта во второй строке программы. Результат этой программы выглядит так:

Одна вещь, которая могла бы возникнуть в вашей голове прямо сейчас: «Как он узнал, что использовать Color.red, а не просто красный, и как он узнал, что нужно добавить вторую строку импорта?» Вы узнаете такие вещи на собственном примере. Поскольку я только что показал вам пример вызова метода setColor, теперь вы знаете, что всякий раз, когда вы хотите изменить цвет, вы будете использовать Color. за которым следует имя цвета в качестве параметра метода setColor, и вы добавите соответствующую строку импорта в верхней части программы. Если вы посмотрите на setColor, там есть ссылка, которая расскажет вам о цветеclass, и в нем находится список всех допустимых названий цветов, а также методы создания новых (безымянных) цветов. Вы читаете эту информацию, храните ее в своей голове и теперь знаете, как изменять цвета в Java. В этом суть становления программистом - вы изучаете техники и запоминаете их для следующей программы, которую напишете. Вы изучаете методы, читая пример (как здесь), или читая документацию, или просматривая пример кода (как в демонстрационном каталоге). Если у вас есть мозг, который любит исследовать, изучать и запоминать вещи, тогда вам понравится программирование!
В этом разделе вы узнали, как писать линейный последовательный код - блоки кода, которые состоят из вызовов методов, начинающихся сверху и работающих по направлению к низу (попробуйте нарисовать одну из линий, прежде чем рисовать красный прямоугольник, и посмотрите, что происходит. - он закроется прямоугольником и станет невидимым (важен порядок строк в кодовой последовательности). Последовательные строки кода составляют основу любой компьютерной программы. Поэкспериментируйте со всеми различными методами рисования и посмотрите, что вы откроете для себя.
Ошибки и отладка
Одна вещь, которую вы заметите, когда узнаете о программировании, - это то, что вы склонны делать изрядное количество ошибок и предположений, из-за которых ваша программа либо: 1) не компилируется, либо 2) производит результат, которого вы не ожидаете, когда он исполняется. Эти проблемы называются ошибками , а действие по их устранению называется отладкой . Около половины времени программист тратит на отладку.У вас будет много времени и возможностей для создания собственных ошибок, но чтобы лучше познакомиться с возможностями, давайте создадим несколько. В своей программе попробуйте стереть одну из точек с запятой в конце строки и попробуйте скомпилировать программу с помощью javac . Компилятор выдаст вам сообщение об ошибке. Это называется ошибкой компилятора , и вы должны устранить их все, прежде чем сможете выполнить свою программу. Попробуйте написать имя функции с ошибкой, опуская "{" или исключив одну из строк импорта, чтобы привыкнуть к различным ошибкам компилятора. Первый раз, когда вы видите ошибку компилятора определенного типа, это может расстраивать, но, экспериментируя таким образом - с известными ошибками, которые вы создаете специально, - вы можете познакомиться со многими распространенными ошибками.
Ошибка, также известная как ошибка выполнения (или ошибка времени выполнения), возникает, когда программа хорошо компилируется и запускается, но затем не дает результатов, которые вы запланировали для нее. Например, этот код создает красный прямоугольник с двумя диагональными линиями поперек него:
Code:
g.setColor (Color.red);
g.fillRect (0, 0, 200, 200);
g.setColor (Color.black);
g.drawLine (0, 0, 200, 200);
g.drawLine (200, 0, 0, 200);
С другой стороны, следующий код создает только красный прямоугольник (закрывающий две строки):
Code:
g.setColor (Color.black);
g.drawLine (0, 0, 200, 200);
g.drawLine (200, 0, 0, 200);
g.setColor (Color.red);
g.fillRect (0, 0, 200, 200);
Вот еще один пример:
Code:
g.drawLine (0, 0, 200, 200);
g.drawRect (0, 0, 200, 200);
g.drawLine (200, 0, 0, 200);
Этот код создает рамку с черным контуром и две диагонали. Следующий фрагмент кода дает только одну диагональ:
Code:
g.drawLine (0, 0, 200, 200);
g.drawRect (0, 0, 200, 200);
g.drawLine (0, 200, 0, 200);
Опять же, если вы ожидали увидеть две диагонали, значит, второй фрагмент кода содержит ошибку (смотрите на второй фрагмент кода, пока не поймете, что пошло не так). На поиск такой ошибки может потребоваться много времени, потому что она незаметна.
У вас будет достаточно времени, чтобы попрактиковаться в поиске собственных ошибок. Средний программист тратит около половины своего времени на отслеживание, поиск и устранение ошибок. Старайтесь не расстраиваться, когда они возникают - это нормальная часть жизни программирования.
Переменные
Все программы используют переменные для временного хранения фрагментов данных. Например, если в какой-то момент в программе вы запрашиваете у пользователя число, вы сохраните его в переменной, чтобы потом использовать.Переменные должны быть определены (или объявлены ) в программе, прежде чем вы сможете их использовать, и вы должны присвоить каждой переменной определенный тип. Например, вы можете объявить одну переменную иметь тип, позволяющий хранить числа, а другую переменную иметь тип, позволяющий хранить имя человека. (Поскольку Java требует, чтобы вы специально определяли переменные перед их использованием и указывали тип значения, которое вы планируете хранить в переменной, Java называется строго типизированным языком. Некоторые языки не имеют этих требований. Как правило, при создании больших программ, строгая типизация сокращает количество совершаемых вами ошибок программирования.)
Code:
import java.awt.Graphics;
import java.awt.Color;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
int width = 200;
int height = 200;
g.drawRect(0, 0, width, height);
g.drawLine(0, 0, width, height);
g.drawLine(width, 0, 0, height);
}
}
В этой программе мы объявили две переменные с именами width и height. Мы объявили их тип int. INT переменная может содержать целое число (целое число , например, 1, 2, 3). Мы инициализировали обе переменные равными 200. Мы могли бы так же легко сказать:
Code:
int width;
width = 200;
int height;
height = 200;
Акт установки переменной в ее первое значение называется инициализацией переменной. Распространенная ошибка программирования возникает, когда вы забываете инициализировать переменную. Чтобы увидеть эту ошибку, попробуйте удалить часть кода инициализации (часть "= 200") и перекомпилировать программу, чтобы посмотреть, что произойдет. Вы обнаружите, что компилятор жалуется на эту проблему. Кстати, это очень приятная особенность. Это сэкономит вам много времени.
В Java есть два типа переменных - простые (примитивные) переменные и классы.
Тип int прост. Переменная может содержать число. Это все, что он может. Вы объявляете int, устанавливаете для него значение и используете его. С другой стороны, классы могут содержать несколько частей и иметь методы, упрощающие их использование. Хорошим примером простого класса является класс Rectangle, поэтому начнем с него.
Одним из ограничений программы, над которой мы работали до сих пор, является тот факт, что она предполагает размер окна 200 на 200 пикселей. Что, если бы мы хотели спросить окно: «Насколько велик ты?», А затем изменить размер прямоугольника и диагоналей? Если вы вернетесь и посмотрите страницу документации для класса Graphics (java.awt.Graphics.html - файл, в котором перечислены все доступные функции рисования), вы увидите, что одна из функций называется getClipBounds. Щелкните имя этой функции, чтобы увидеть полное описание. Эта функция не принимает никаких параметров, но вместо этого возвращает значение типа Rectangle. Прямоугольник, который он возвращает, содержит ширину и высоту доступной области рисования. Если вы нажмете Прямоугольник на этой странице документации вы попадете на страницу документации для класса Rectangle (java.awt.Graphics.html). Заглянув в раздел «Указатель переменных» вверху страницы, вы обнаружите, что этот класс содержит четыре переменные с именами x, y, шириной и высотой соответственно. Поэтому мы хотим получить прямоугольник границы обрезки с помощью getClipBounds, а затем извлечь ширину и высоту из этого прямоугольника и сохранить значения в переменных ширины и высоты, которые мы создали в предыдущем примере, например:
Code:
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Rectangle;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
int width;
int height;
Rectangle r;
r = g.getClipBounds();
width = r.width - 1;
height = r.height - 1;
g.drawRect(0, 0, width, height);
g.drawLine(0, 0, width, height);
g.drawLine(width, 0, 0, height);
}
}
- Во-первых, поскольку мы используем класс Rectangle, нам нужно импортировать java.awt.Rectangle в третьей строке программы.
- В этой программе мы объявили три переменные. Два (ширина и высота) относятся к типу int, а один (r) - к типу Rectangle.
- Мы использовали функцию getClipBounds, чтобы получить размер области рисования. Он не принимает никаких параметров, поэтому мы передали его none ("()"), но он возвращает Rectangle. Мы написали строку «r = g.getClipBounds ();» чтобы сказать: «Пожалуйста, поместите возвращенный прямоугольник в переменную r».
- Переменная r, принадлежащая к классу Rectangle, на самом деле содержит четыре переменные - x, y, ширину и высоту (вы узнаете эти имена, прочитав документацию для класса Rectangle). Для доступа к ним вы используете "." (точка) оператор. Таким образом, фраза «r.width» говорит: «Внутри переменной r извлекается значение с именем width». Это значение помещается в нашу локальную переменную с именем width . В процессе мы вычитали 1. Попробуйте не учитывать вычитание и посмотрите, что произойдет. Также попробуйте вместо этого вычесть пять и посмотрите, что произойдет.
- Наконец, мы использовали ширину и высоту в функциях рисования.
Java поддерживает несколько простых типов переменных. Вот три самых распространенных:
- int - целые (целые числа) значения (1, 2, 3 ...)
- float - десятичные значения (например, 3,14159)
- char - значения символов (a, b, c ...)
Code:
float diameter = 10;
float radius;
float volume;
radius = diameter / 2.0;
volume = 4.0 / 3.0 * 3.14159 * radius * radius * radius;
Зацикливание

Одна из вещей, которые компьютеры делают очень хорошо, - это выполнение повторяющихся вычислений или операций. В предыдущих разделах мы видели, как писать «последовательные блоки кода», поэтому следующее, что мы должны обсудить, - это методы повторного появления последовательного блока кода.
Например, предположим, что я прошу вас нарисовать сетку, изображенную в верхней части страницы.
Для начала неплохо было бы нарисовать горизонтальные линии.
Один из способов нарисовать линии - создать последовательный блок кода:
Code:
import java.awt.Graphics;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
int y;
y = 10;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
y = y + 25;
g.drawLine(10, y, 210, y);
}
}
Большинство людей, которые смотрят на этот код, сразу замечают, что он содержит одни и те же две строки, повторяющиеся снова и снова. В данном конкретном случае повторение не так уж и плохо, но вы можете себе представить, что если вы хотите создать сетку с тысячами строк и столбцов, такой подход сделает написание программы очень утомительным.
Решением этой проблемы является цикл, как показано ниже:
Code:
import java.awt.Graphics;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
int y;
y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}
}
}
Оператор while - это оператор цикла в Java. Этот оператор указывает Java вести себя следующим образом: в операторе while Java просматривает выражение в круглых скобках и спрашивает: «Y меньше или равно 210?»
- Если ответ положительный, то Java входит в блок кода, заключенный в фигурные скобки - "{" и "}". Часть цикла происходит в конце блока кода. Когда Java достигает конечной скобки, она возвращается к оператору while и снова задает вопрос. Эта повторяющаяся последовательность может повторяться много раз.
- Если ответ отрицательный, код, заключенный в фигурные скобки, пропускается и продолжается.
Мы можем завершить нашу сетку, добавив в программу второй цикл, например:
Code:
import java.awt.Graphics;
public class FirstApplet extends java.applet.Applet
{
public void paint(Graphics g)
{
int x, y;
y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}
x = 10;
while (x <= 210)
{
g.drawLine(x, 10, x, 210);
x = x + 25;
}
}
}
Вы можете видеть, что оператор while состоит из трех частей:
- Есть шаг инициализации, который устанавливает y равным 10.
- Затем в скобках оператора while есть этап оценки.
- Затем где-то в инструкции while есть шаг приращения, который увеличивает значение y.
Code:
y = 10;
while (y <= 210)
{
g.drawLine(10, y, 210, y);
y = y + 25;
}
Code:
for (y = 10; y <= 210; y = y + 25)
{
g.drawLine(10, y, 210, y);
}
Вы можете видеть, что все, что делает оператор for, - это сжатие строк инициализации, оценки и увеличения в одну короткую единственную строку. Он просто сокращает программы, которые вы пишете, не более того.
Пока мы здесь, два небольших замечания о циклах:
- Во многих случаях было бы так же легко инициализировать y равным 210, а затем уменьшать его на 25 каждый раз в цикле. Оценка бы спросить, «ли у больше или равен 10?» Выбор остается за вами. Большинству людей проще сложить, чем вычесть в уме, но вы можете быть другим.
- Шаг приращения очень важен. Допустим, вы случайно пропустили часть, в которой написано «y = y + 25;» внутри петли. Что произойдет, так это то, что значение y никогда не изменится - оно всегда будет 10. Таким образом, оно никогда не станет больше 210, и цикл будет продолжаться вечно (или до тех пор, пока вы не остановите его, выключив компьютер или закрыв окно) . Это состояние называется бесконечным циклом. Это довольно распространенная ошибка.
