Лекция
Привет, сегодня поговорим про знакомство с оболочкой eclipse, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое знакомство с оболочкой eclipse , настоятельно рекомендую прочитать все из категории ООП и практические JAVA.
Eclipse — это расширяемая IDE (интегрированная среда разработки). IDE — удобно организованный набор инструментов, необходимых для работы над программным проектом.
Eclipse — универсальная платформа, которая может использоваться для разработки приложений на любом языке программирования (например, можно использовать язык Python после установки подключения Pydev (http://sourceforge.net/projects/pydev/), но изначально «родным» для Eclipse является Java (на которой, кстати, сам Eclipse и написан).
Наиболее важными особенностями Eclipse являются:
Первое, что вы видите при запуске Eclipse – диалоговое окно, позволяющее выбрать место, где будет располагаться рабочее пространство. Рабочее пространство – каталог, в котором будет сохраняться ваша работа.
После выбора рабочего пространства, на экране появится начальная страница, с предложениями посмотреть учебники, примеры и т.д. Выберите Workbench и вы перейдете в окно рабочей среды (Workbench), в котором и будет проходить ваша дальнейшая работа.
Основными составляющими рабочей среды являются представления (views), редакторы (editors) и проекции или перспективы (perspectives).
Представление – это небольшой раздел внутри рабочей среды, который служит для навигации по некоторой категории объектов (такой, как ресурсы или пакеты), открытия редакторов, отображения свойств активных редакторов. Например, представление Navigator показывает проекты и другие ресурсы, а представление Bookmarks отображает все закладки в Workbench вместе с именами файлов, с которыми эти закладки связаны. На рисунке изображен правый верхний угол рабочей среды с активным представление Outline.
Все изменения, сделанные в представлениях, немедленно сохраняются.
Другой тип визуальных компонентов Workbench –редакторы, которые используются для просмотра и редактирования некоторого ресурса (например, программного кода). При выборе ресурса появляется подходящий редактор. Например, откройте любой текстовый документ (с расширением .txt) командой File --> Open File... и вы увидите встроенный редактор простого неформатируемого текста. Если что-либо набрать в этом редакторе, на его вкладке, где написано название файла, появится звездочка. Она означает, что редактор содержит не сохраненные изменения. Они сохранятся, если нажать Ctrl + S или выбрать команду File --> Save.
Существует множество полезных представлений, которые добавляются в окно рабочей среды командой Window --> Show View. Однако вместо того, чтобы добавлять их по одному, удобнее бывает переключать проекцию (perspective).Проекция (или перспектива) – это набор представлений и редакторов, специально подобранный для выполнения некоторой задачи. После запуска в Eclipse открывается перспектива Java, настроенная собственно на написание программы. Для отладки программы часто используется проекция Debug. Переключить проекцию можно командойWindow --> Open Perspective. Название текущей проекции отображается в правом верхнем углу рабочей среды (см. рисунок).
Прежде чем приступить к программированию, необходимо создать проект, в котором Eclipse будет хранить все ресурсы, относящиеся к вашей программе.
Для создания проекта выполните команду File --> New --> Project. В появившемся окне выберите Java Project и нажмите «Далее». Укажите имя своего проекта. Обратите внимание, что в директории, указанной вами как рабочее пространство, будет создана папка с именем вашего проекта (если, конечно, не изменить настройки в этом окне, чего для первого раза мы делать не будем). Нажмите кнопку «Готово».
Теперь в представлении PackageExplorer в левой части рабочей среды присутствует ваш проект. В любой момент его можно удалить, щелкнув по его названию правой кнопкой мыши и выбрав Delete. После этого Eclipse спросит, уничтожить ли заодно папку с файлами проекта (при необходимости можно и уничтожить).
Если вы не удалили проект, к нему можно добавить файлы и папки с помощью команд контекстного меню New --> File и New --> Folder соответственно. Если проект большой, то ему необходима структура вложенных папок. Но в случае Java-проекта все несколько иначе. Дело в том, что фрагменты Java-программы сгруппированы в пакеты, а для каждого пакета создается отдельная папка. Пакет создается командой New --> Package. Для пакета тоже надо придумать имя. В результате в папке проекта будет создана новая папка с этим именем. Можете проверить.
Просматривать ресурсы проекта может быть удобнее с помощью представления Navigator. Откройте его командойWindow --> Show View. Вы увидите, что кроме директорий проекта и пакета Eclipse создал два вспомогательных файла .classpath и .project. Они легко откроются в редакторе, но особого интереса для нас они сейчас не представляют.
Программа на Java всегда состоит из одного или нескольких классов. Создать класс можно командой New --> Class в контекстном меню представления Navigator (или Package Explorer, не имеет значения). При создании класса необходимо выбрать пакет, к которому он будет относиться (выберите только что созданный вами пакет) и придумать ему имя. Имена классов принято начинать с прописной буквы. Если не соблюсти это правило хорошего тона, Eclipse выдаст предупреждение, но ничего страшного не произойдет.
Для наших целей полезно поставить галочку в разделе «Какие методы вы хотите создать в своем классе?» напротив опции public static void main(String[] args). В результате в теле класса будет сгенерирован метод (функция)main(). Java требует, чтобы хотя бы в одном из классов программы существовал метод с таким заголовком. Именно он и будет выполнен при старте программы.
В результате наших действий в папке пакета будет создан файл с именем нашего класса и расширением .java. Eclipse откроет редактор кода, в котором отобразится содержимое этого файла. Оно будет примерно следующим (имена пакета и класса, конечно, могут отличаться):
package mainPack;
public class MyClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Команды, составляющие тело функции, можно написать вместо автоматически сгенерированного комментария // TODO Auto-generated method stub. Мы напишем только одну команду, которая будет выводить на экран классическую строку «Hello, world!»:
System.out.println("Hello, world!");
Осталось программу запустить. Для этого выполним команду Run --> Run и получим диалоговое окно с нетривиальными настройками запуска. В левой части этого окна надо выбрать Java Application (приложение Java). Немного подумав, Eclipse найдет наш класс, содержащий метод main()
и предложит начать запуск программы именно с него (в правой части окна на вкладке Main
должны появиться названия нашего проекта и нашего класса). Помимо этого вниманию программиста предлагается еще несколько закладок. Например, на второй из них – Arguments – предлагается ввести параметры командной строки (если программа рассчитана на вызов из командной строки с параметрами). Для нашей простой программы ничего дополнительно указывать не нужно. Просто нажмите кнопку Run
.
В результате работы программы осуществляется вывод данных в так называемую консоль. В операционной системе MS DOS консолью служил весь экран монитора. Eclipse же открывает нам представление Console, в котором (если все сделано правильно) и отобразится строка "Hello, world!" - результат вывода нашей программы.
Теперь для повторного запуска программы (например, если мы решили внести в нее какие-то изменения или надо показать преподавателю), можно пойти более легким путем - выполнить команду Run --> Run Last Launched (еще раз запустить предыдущее приложение) или просто нажать Ctrl + F11.
Литерал — константа некоторого типа, не имеющая имени, а указанная собственно записью, например: 0, 145, 'a',"Hello, world!".
Оператор — наименьшая автономная часть языка программирования (также называемая инструкцией или командой) способная выполняться самостоятельно и несущая самостоятельный смысл. Примером может служить оператор вывода на экран или оператор цикла. Программа обычно представляет собой последовательность операторов (команд, инструкций).
Операция — действие над одной или более (чаще всего двумя) величинами — операндами, приводящее к появлению новой величины — результата операции. Операция, как правило, не имеет смысла вне контекста какого-либо оператора. Например, бессмысленно писать 3+4
как самостоятельную команду, поскольку вычисленный результат операции тут же будет потерян. Но команда x = 3+4;
(использование результата операции в операторе присваивания) или System.out.println(3+4);
(передача результата в метод в качестве параметра) вполне оправдана.
Операнд — величина, участвующая в операции.
Метод (функция) — часть программы, имеющая собственное имя. Это имя можно использовать в программе как команду (такая команда называется вызовом метода). При вызове метода выполняются команды, из которых он состоит. Метод аналогично операции может возвращать значение-результат.
Выражение – это последовательность операций и вызовов методов, выполняемых в определенном порядке (по приоритету операций, с учетом скобок), дающая при вычислении некоторое значение.
Переменная – именованная область памяти ЭВМ, в которой программа может хранить данные определенного типа (называемые значением переменной) и обращаться к этим данным, используя имя переменной.
Внимание! На данном этапе обучения вы уже должны владеть знаниями по этой теме. Если их нет, а материалы для повторения непонятны или недостаточны, вы с заданиями не справитесь! Необходимо срочно обратиться к литературе по данной теме.
1. Школьный учебник информатики.
Внимание! На данном этапе обучения вы уже должны владеть знаниями по этой теме. Если их нет, а материалы для повторения непонятны или недостаточны, вы с заданиями не справитесь! Необходимо срочно обратиться к литературе по данной теме.
1. Школьный учебник информатики.
main()
, в точности такой, как в рассмотренном нами примере. (На первых порах разбираться или пытаться запомнить правильное написание этого метода необязательно – Eclipse все сгенерирует сам, если поставить нужную галочку.) Именно этот метод и будет выполняться первым.
В простейшем случае программа может состоять из одного (или даже ни одного) пакета, одного класса внутри пакета и единственного метода main()
внутри класса. Команды программы будут записываться между строчкой
public static void main(String[] args) {
и закрывающей фигурной скобкой }
, обозначающей окончание тела метода. Этого подхода и следует придерживаться при выполнении простейших упражнений.
Комментарии — это поясняющие надписи, которые используют программисты для улучшения понятности кода. При компиляции программы комментарии игнорируются, поэтому в них может быть написано все, что угодно. Главное показать, что данная надпись является комментарием и ее не надо пытаться трактовать как команды программы. Об этом говорит сайт https://intellect.icu . В Java это делается одним из следующих образов:
Целые числа (целочисленные литералы) в Java можно записывать обычным образом в десятичной форме: 12345, +4, -11.
Кроме этого, можно записывать целые числа в восьмеричной форме, начиная с нуля (0777, -056) и в шестнадцатеричной форме, начиная с нуля и латинской буквы x (0xFFFF, 0x14, 0xA1BC).
Действительные литералы записываются в десятичной системе счисления, целая часть отделяется от дробной точкой.
Действительное число можно записать в форме с плавающей точкой, например: 5.4e19, 17E-11, -123e+4. Та часть числа, которая стоит до буквы e называется мантиссой, а часть, которая стоит после буквы e – порядком. Запись означает следующее: надо возвести 10 в степень порядка и умножить на мантиссу. Иногда действительно удобнее записать 1e-9, чем 0.000000001.
Одиночные символы записываются в апострофах, например, 'a', 'D', '@'.
Существуют некоторые специальные и управляющие символы, которые записываются с помощью специальной управляющей последовательности. Наиболее распространенные из них перечислены в таблице:
Управляющая последовательность | Описание |
---|---|
\ddd | Восьмеричный символ (ddd) |
\uxxxx | Шестнадцатиричный символ Unicode (xxxx) |
\' | Апостроф |
\" | Кавычка |
\\ | Обратная косая черта |
\r | Возврат каретки (carriage return) |
\n | Перевод строки (line feed, new line) |
\t | Горизонтальная табуляция (tab) |
\b | Возврат на символ (backspace) |
Управляющая последовательность также заключается в апострофы.
В первой строке таблицы говорится, что любой символ можно задать с помощью его кода (с десятичной кодировкой от 0 до 255), записав этот код в восьмеричной системе счисления. Например, буква "ж" в кодировке CP1251 запишется управляющей последовательностью '\346'
При необходимости можно указать код любого символа в кодировке Unicode – после обратной черты и латинской буквы u – четырьмя шестнадцатеричными символами. Например, '\u0055' – это буква U.
Строки символов записываются в кавычках. Открывающая и закрывающая кавычка должны находиться в одной строке программного кода.
Для строк определена операция сцепления +, которая позволяет собрать несколько строк в одну ("приписывая" их друг к другу).
Если строковая константа слишком длинная и плохо воспринимается в программном коде при записи ее в одну строчку, можно записать ее в несколько строчек, соединяя их с помощью операции сцепления строк. Например:
"Это очень длинная строковая константа, записанная" +
"на двух строках исходного текста"
Управляющие символы и коды записываются внутри строки точно также с обратной чертой (но без апострофов).
Логические литералы — это true (истина) и false (ложь).
Идентификатор — это имя, которое дается некоторому объекту программы: переменной, классу, методу и т.п.
При программировании постоянно возникает необходимость придумывать идентификаторы для именования объектов.
Идентификатор может состоять из букв, цифр, знака подчеркивания _
и знака доллара $
(последний использовать не рекомендуется, Java пользуется им для своих нужд). Идентификатор не может начинаться с цифры. В качестве идентификаторов не могут использоваться ключевые слова Java (а также литералы true, false и null).
Как было отмечено выше, язык Java различает простые и строчные буквы. Это значит, что myAge
, myage
и MyAge
– имена совершенно разных объектов. Будьте внимательны: ошибка в регистре — весьма распространенный случай!
При выборе имен рекомендуется придерживается следующих правил хорошего стиля
Имена классов начинаются с прописной буквы, если имя состоит из нескольких слов, то каждое слово начинается с прописной буквы. Например: MyClass
, Book
.
Имена методов и переменных начинаются со строчных (маленьких букв); если в имени содержится несколько слов, то каждое следующее слово начинается с заглавной буквы. Например, myVar
, x
, y
, newBigCounter
.
Имена констант записываются полностью прописными буквами; если имя содержит несколько слов, между ними ставится знак подчеркивания. Например, PI
, COUNT_OF_MONTHS.
При использовании этих рекомендаций вы получите множество преимуществ. Одно из них заключается в том, что вы будете точно знать, как расставлять прописные и строчные буквы при использовании стандартных библиотек Java, разработчики которых рекомендаций придерживались.
Для хранения целых чисел в Java чаще всего используется тип int.
Вообще в языке Java существует четыре целочисленных типа: byte, short, int, long. Они различаются объемом памяти, которая будет выделена под переменную и, соответственно, диапазоном значений, которые можно в этой переменной хранить. Чаще всего используемый тип int занимает в памяти 4 байта и пригоден для хранения чисел от -2147483648 до 2147483647. Тип byte расходует меньше всего памяти и подходит для работы с небольшими числами (от -128 до 127). Типы short и long занимают 2 и 8 байт соответственно.
Для действительных чисел подходит тип double.
Действительные (вещественные) числа (или числа с плавающей точкой) представлены двумя типами: float и double. Тип float занимает 4 байта памяти и не дает большой степени точности при работе с очень большими или очень маленькими числами. Его рекомендуют использовать в случае, когда дробная часть нужна, но высокая точность не требуется (например, для измерения расстояний в метрах, но с учетом сантиметров и миллиметров или измерения цен в рублях с учетом копеек). При необходимости более точных вычислений рекомендуется оперировать с величинами типаdouble (например, такая переменная может хранить величину синуса угла).
Действительные литералы, такие как 5.3
, 8.0
, 2e-3
, Java считает относящимися к типу double. Если они должны использоваться в программе как величины типа float, необходимо заканчивать их на букву f
: 5.3f
, 8.0f
, 2e-3f
.
Для хранения одиночных символов используется тип char. Java считает его разновидностью целочисленных типов (поскольку каждый символ задается своим кодом в кодировке Unicode), так что к char применимы все операции с целыми числами.
Логические величины (принимающие истинное либо ложное значение) представлены типом boolean.
Таким образом, в Java определено восемь простых типов, особенности которых представлены в таблице:
Тип | Размер (бит) | Минимальное значение | Максимальное значение | Описание | Значение по умолчанию |
---|---|---|---|---|---|
boolean | — | — | — | логический тип | false |
char | 16 | Unicode 0 | Unicode 216-1 | символьный тип | '\u0000' |
byte | 8 | -128 | +127 | целое со знаком | 0 |
short | 16 | -215 | +215-1 | целое со знаком | 0 |
int | 32 | -231 | +231-1 | целое со знаком | 0 |
long | 64 | -263 | +263-1 | целое со знаком | 0L |
float | 32 | 3.4е-038 | 3.4е+038 | вещественное | 0.0f |
double | 64 | 1.7е-308 | 1.7е+308 | вещественное | 0.0d |
В языке Java (как и во многих других языках) переменную требуется описать перед ее использованием. Описать переменную – значит дать ей имя и определить ее тип.
При объявлении переменной сначала указывается тип (которым может быть один из простых типов, имя класса или интерфейса), затем идентификатор – имя переменной. Если переменную нужно проинициализировать (присвоить начальное значение), начальное значение указывается после имени через знак равенства. Через запятую можно объявить еще несколько переменных того же самого типа.
Примеры объявления переменных:
int x; // Объявление целочисленной переменной x
double a, b; // Объявление двух вещественных переменных a и b
char letter = 'Z'; // Объявление символьной переменной letter, инициализация начальным значением 'Z'
boolean b1 = true, b2, b3 = false; // Объявление трех логических переменных, первая из них будет иметь значение true, последняя — false
Переменные и литералы могут участвовать в операциях (из которых, в свою очередь могут строиться сложныевыражения). Рассмотрим простейшие операции языка Java.
Операция | Использование | Описание |
---|---|---|
+ |
op1 + op2 |
Складывает op1 и op2 |
- |
op1 - op2 |
Вычитает op1 из op2 |
* |
op1 * op2 |
Умножает op1 на op2 |
/ |
op1 / op2 |
Делит op1 на op2 |
% |
op1 % op2 |
Вычисляет остаток от деления op1 на op2 |
Операция | Использование | Возвращает истину(true), если |
---|---|---|
> |
op1 > op2 |
op1 больше чем op2 |
>= |
op1 >= op2 |
op1 больше или равен op2 |
< |
op1 < op2 |
op1 меньше op2 |
<= |
op1 <= op2 |
op1 меньше или равно op2 |
== |
op1 == op2 |
op1 и op2 равны |
!= |
op1 != op2 |
op1 и op2 не равны |
Операция | Использование | Возвращает истину(true), если |
---|---|---|
&& |
op1 && op2 |
op1 и op2 оба истины (конъюнкция) |
|| |
op1 || op2 |
один из op1 или op2 истинен (дизъюкция) |
! |
!op |
op — ложь (отрицание) |
^ |
op1 ^ op2 |
op1 и op2 различны (исключающее или) |
Операции &&
и ||
отличаются тем, что не обязательно вычисляют значение второго операнда. Например, &&
вычисляет значение первого операнда и, если оно ложно, сразу возвращает false
, а ||
возвращает true
сразу, если видит, что первый операнд – истина. В Java есть аналогичные по действию операции &
и |
, они вычисляют значения обоих операндов, прежде чем произвести над ними операцию.
(работают с битовым представлением первого операнда)
Операция | Использование | Описание |
---|---|---|
>> |
op1 >> op2 |
сдвигает биты op1 вправо на op2 |
<< |
op1 << op2 |
сдвигает биты op1 влево на op2 |
>>> |
op1 >>> op2 |
сдвигает биты op1 вправо на op2 (без учета знака) |
(работают с битовым представлением операндов)
Операция | Использование | Описание |
---|---|---|
& |
op1 & op2 |
побитовое и |
| |
op1 | op2 |
побитовое или |
^ |
op1 ^ op2 |
побитовое исключающее или |
~ |
~op2 |
побитовое дополнение |
Операция ?: тернарная, то есть имеет три операнда. Первый операнд — условие, выражение логического типа. Второй и третий операнды — выражения любого другого типа. Операция работает следующим образом: если условие равно true, она возвращает в качестве результата свой второй операнд, а если false, то третий.
Например, выражение (5 > 3)? 7+1: 2*2
будет иметь значение 8, а выражение (5 == 3)? 7+1: 2*2
— значение 4. Эта запись выглядит не очень наглядно, но программисты часто используют ее для сокращения своего кода. Так, вместо последовательности команд:
if (x > 0) y = 45 + a*2; // оператор if рассматривается ниже
else y = 45 - b*3;
можно написать:
y = 45 + ((x > 0)? a*2: -b*3);
После того, как переменная описана, с ней можно работать в программе. В частности, ей можно присвоить значение соответствующего типа. Тогда в дальнейшем при использовании этой переменной в каком-либо выражении вместо нее будет автоматически подставляться это текущее значение.
Значение связывается с переменной с помощью оператора присваивания. В языке Java он записывается простым знаком равенства:
переменная = выражение;
Слева от оператора присваивания всегда указывается переменная. Выражение справа должно соответствовать переменной по типу. Оно может представлять собой просто литерал (например, число или символ):
x = 7; // переменной x присваивается значение 7
letter = 'Q'; // переменной letter присваивается значение 'Q'
В общем случае выражение — это то, что может быть вычислено (например, результат математической операции или результат, возвращаемый некоторым методом):
a = 7.5 + 2.4; // переменной a присваивается 9.9 как результат вычислений
В выражении наряду с литералами могут участвовать другие переменные. Вместо них подставляется их текущее значение. В результате выполнения команды:
b = a + 1;
переменная b примет значение 10.9.
Итак, оператор присваивания действует следующим образом. Сначала вычисляется значение выражения в правой части, а затем полученный результат присваивается переменной, указанной в левой части. Возможна даже следующая ситуация:
x = x + 4;
Эта команда увеличивает текущее значение целочисленной переменной x на 4.
А следующие команды записаны неправильно и работать не будут:
5 = x + 7; // слева должна стоять переменная
x + 3 = 14; // слева должна стоять просто одна переменная
x = 4.5; // переменная x может принимать только целочисленные значения
Eclipse попытается указать на ошибку в этих строчках еще до выполнения программы, расставив предупреждающие знаки на полях редактора кода. Вы можете посмотреть, как он это делает.
Когда переменной одного типа присваивается величина другого типа, происходит используется приведение (преобразование) типов. Для числовых типов (byte, short, int, long, float, double, char) оно происходит автоматически, если тип изменяемой переменной может "вместить" значение другого типа.
Например, если переменной типа int присвоить значение типа byte, автоматически произойдет преобразование типа byteв тип int. Аналогично тип float может быть приведен к типу double и т.п.
При попытке присвоить переменной менее точного типа (например, byte) значение более точного типа (например, int) компилятор выдаст сообщение об ошибке.
Для приведения типа можно использовать оператор приведения типа – перед выражением, для которого мы хотим выполнить приведение типа, ставятся круглые скобки с типом, к которому выполняется приведение, внутри скобок. При приведении целого типа большей точности к целому типу меньшей точности может быть выполнено деление по модулю на допустимый диапазон типа, к которому осуществляется приведение, а при приведении выражения типа double к выражению типа float будет уменьшена точность представления выражения.
long j = (long)1.0; //используем оператор приведения типа к long, j = 1
char ch = (char)1001; //используем оператор приведения типа к char, ch = 'd'
byte b2 = (byte)(100); //используем оператор приведения типа от int к byte, b2 = 100
byte b3 = (byte)(100 * 2); //внимание! происходит деление по модулю, b3 = -56
Ошибка несовпадения типов часто возникает применительно к действительным литералам. Например, нельзя выполнить присваивание a = 7.5 + 2.4;
, если переменная a
имеет тип float, поскольку литералы 7.5
и 2.4
считаются относящимся к типу double. Чтобы не было ошибки, необходимо использовать приведение типов:
a = (float)(7.5 + 2.4);
или указать, что литералы также относятся к типу float:
a = 7.5f + 2.4f; // это тоже правильная команда
Практически для каждой бинарной операции существует своя разновидность оператора присваивания. Например, для операции сложения + существует унарный оператор присваивания +=
, который увеличивает значение операнда на заданную величину:
x += 8; // то же самое, что x = x + 8 (x увеличивается на 8)
Аналогично для других операций: операторы *=
, -=
, /=
, %=
, &= ^=
и т.д:
x *= 3; // то же самое, что x = x * 3 (x увеличивается в 3 раза)
b1 ^= b2; // то же самое, что b1 = b1 ^ b2
Объявите две целочисленных переменных, присвойте им любые значения. Выведите их сумму и произведение.
Подсказка: вы можете воспользоваться уже созданным в Eclipse проектом, вставив нужные команды после команды вывода строки "Hello, world!" либо вместо нее.
Операторы инкремента и декремента ++
и ––
увеличивают и уменьшают на единицу значение операнда. Гораздо удобнее использовать команду x++;
вместо команды x = x+1;
Операторы инкремента и декремента тоже возвращают значение. Это значит, что правомерно выполнить команду
y = 7 * x++;
В результате переменная x увеличится на 1, а переменная y примет значение, в семь раз большее старого значения x. Можно также выполнить и такую команду:
y = 7 * ++x;
В результате переменная x увеличится на 1, а переменная y примет значение, в семь раз большее нового значения x.
Простейшая форма записи условного оператора имеет вид:
if (условие) команда
Условие в скобках представляет собой логическое выражение, т.е. может быть истинным или ложным. Если условие окажется истинным, команда будет выполнена, в противном случае ничего не произойдет. Например:
if (x < 17) x = 17; // если значение переменной x меньше 17, x присвоить 17
Если же необходимо, чтобы в случае, когда условие ложно, была выполнена какая-то другая команда, используют расширенную форму оператора if:
if (условие) команда1
else команда2
В примере, рассмотренном выше, мы можем захотеть присвоить переменной x значение 5, если условие x < 17 не выполняется (зачем оно нам, другой вопрос).
if (x < 17) x = 17;
else x = 5;
Если необходимо использовать несколько взаимоисключающих условий, их можно записать следующим образом:
if (условие1) команда1
else if (условие2) команда2
else if (условие3) команда3
...
else командаN
Объявите две целочисленных переменных, присвойте им любые значения. С помощью оператора if найдите и выведите их максимум.
Подсказка: алгоритм нахождения максимума рассматривался выше при повторении основных конструкций алгоритма.
Несколько команд языка Java можно объединить в одну составную команду, используя фигурные скобки {}. Например, можно записать:
{
a = 12;
letter = 'D';
}
Составные команды можно использовать везде, где и обычные. Например, в операторе if, если при выполнении условия надо выполнить несколько действий:
if (x < 17) {
x = 17;
letter = 'S';
} else {
x = 5;
}
Конструкция из фигурных скобок называется также блоком команд, а фигурные скобки — границами блока.
Заметим, что используемая в примере форма записи (когда границы блока размещаются на отдельных строках, а содержимое блока записывается с отступом от его границ), не обязательна. Это просто правило стиля, позволяющее сделать программы более понятными и не запутаться в фигурных скобках, которые в программе на Java приходится использовать довольно часто.
Часто выбор команды, которую необходимо выполнить, зависит от значения некоторой переменной (или выражения). Например, пользователю предлагается ввести знак операции и в зависимости от введенного символа требуется вывести на экран результат сложения, вычитания и т.п. или, если введен неправильные знак, сообщение об ошибке. В этом случае удобно использовать оператор выбора switch, имеющий следующую форму записи:
switch (выражение) {
case значение1:
последовательность команд 1
break;
case значение2:
последовательность команд 2
break;
...
default:
последовательность команд по умолчанию
}
Значение1, значение2 и т.д. — это константы или выражения, в которых участвуют только константы. Выражение в скобках после ключевого слова switch может содержать переменные. Это выражение вычисляется, а затем ищется соответствие результата с одним из значений после ключевого слова case. Если такое соответствие найдено, то выполняется вся последовательность команд, расположенная между двоеточием и ближайшей командой break. Если не найдено ни одного соответствия, выполнится последовательность команд по умолчанию, стоящая после ключевого словаdefault. Например:
char oper; // Знак операции, его выберет пользователь
...
// Будем считать, что к этому моменту пользователь выбрал знак
switch (oper) {
case '+':
System.out.println(a + b);
break;
case '-':
System.out.println(a - b);
break;
case '*':
System.out.println(a * b);
break;
default:
System.out.println("Неверный знак операции");
}
Можно опустить раздел default. В этом случае если совпадение не будет найдено, не выполнится ни одна команда.
Цикл while имеет следующую форму:
while (условие) команда
Если условие в скобках (представляющее собой логическое выражение типа boolean) истинно, будет выполнена команда — тело цикла (это может быть простая команда или последовательность команд в фигурных скобках), после чего программа снова вернется к выполнению этого оператора и будет повторять это до тех пор, пока условие не окажется ложным.
Следовательно, чтобы программа не вошла в бесконечный цикл и не зависла, в теле цикла должна предусматриваться возможность выхода, то есть, например, команды в теле цикла должны как-то влиять на переменные, входящие в условие.
К примеру, следующий фрагмент программы выводит четные числа от 2 до 10:
int x = 2;
while (x <= 10){
System.out.println(x);
x += 2;
}
Существует другой вариант записи цикла while:
do команда while (условие)
При использовании этого варианта сначала выполняется команда, а потом проверяется условие. Оба варианта работают одинаково, но во втором случае тело цикла (команда) выполнится хотя бы один раз, даже если условие изначально ложно.
С помощью цикла while выведите все нечетные числа от 1 до 10.
Подсказка: немного измените алгоритм вывода четных чисел.
Цикл for обычно используется, когда известно заранее сколько раз должно повториться выполнение команды (или последовательности команд). Он имеет следующую форму:
for (команда инициализации; условие; команда перехода) тело_цикла
Перед началом цикла выполняется команда инициализации. Затем проверяется условие перехода (представляющее собой логическое выражение). Если это условие истинно, выполняется команда (или блок команд в фигурных скобках), составляющая тело цикла. Затем выполняется команда перехода и все начинается заново. Команда перехода обычно изменяет переменную, влияющую на истинность условия, а команда инициализации представляет собой описание этой переменной.
Обычно цикл for используется в следующем виде:
for (int i = 1; i <= 10; i++) тело_цикла;
В этом примере тело_цикла выполнится ровно 10 раз. При этом на каждой итерации будет доступна переменная i (она называется переменной цикла), последовательно пробегающая значения от 1 до 10. Следующий фрагмент программы выводит четные числа от 2 до 10 (аналогично примеру цикла while):
for (int i = 1; i <= 5; i++) System.out.println(i*2);
С помощью цикла for выведите все нечетные числа от 1 до 10.
Когда тело цикла (for или while) состоит из нескольких команд, может возникнуть ситуация, что на очередной итерации выполнять их все нет необходимости. В этом случае полезными оказываются операторы break и continue.
Оператор break прекращает выполнение текущего цикла, независиом от того, выполняется ли условие его окончания.
Оператор continue прекращает выполнение текущей итерации цикла. То есть, если в теле цикла встречается этот оператор, то остальные, следующие за ним команды пропускаются и начинается новая итерация (повторение) цикла.
Несмотря на то, что материал первого занятия достаточно обширный, он не должен вызвать затруднений у студентов, уже знакомых хотя бы с одним языком программирования, поскольку конструкции во всех языках одни и те же и необходимо лишь освоить правила их записи (синтаксис). Если же знакомство с другими языкми программирования состоялось слабое, необходима усиленная домашняя работа над пособием и решение дополнительных задач. Наилучшим вариантом в этом случае будет прочтение до начала следующего занятия рекомендуемых глав из предложенной литературы.
1. Вязовик Н.А. Программирование на Java. (главы 1 — 4, 7, 10)
2. Хабибуллин И.Ш. Самоучитель Java 2. (глава 1)
Обратите особенное внимание на типы данных Java и правила приведения типов, затронутые в данном пособии недостаточно подробно. Профессиональный программист всегда должен контролировать в своих программах возможность выхода значения переменной за допустимый для ее типа диапазон. Ошибки, связанные с приведением типов, одни из самых распространенных и труднообнаруживаемых. Главы 4 и 7 первой книги настоятельно рекомендуются к прочтению всем студентам, претендующим на отличную оценку.
На этом все! Теперь вы знаете все про знакомство с оболочкой eclipse, Помните, что это теперь будет проще использовать на практике. Надеюсь, что теперь ты понял что такое знакомство с оболочкой eclipse и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории ООП и практические JAVA
Комментарии
Оставить комментарий
ООП и практические JAVA
Термины: ООП и практические JAVA