Ключевой момент: Написание программы предполагает разработку стратегии решения проблемы, а затем использование языка программирования для реализации этой стратегии.
Проблема
Рассмотрим сначала простую задачу вычисления площади круга. Как написать программу для решения этой проблемы?
Алгоритм
Написание программы включает в себя разработку алгоритмов и перевод алгоритмов в инструкции программирования или код. Алгоритм описывает, как проблема решается путем перечисления действий, которые необходимо предпринять, и порядка их выполнения. Алгоритмы могут помочь программисту распланировать программу, прежде чем писать ее на языке программирования.
Псевдокод
Алгоритмы могут быть описаны в естественных языках или в псевдокоде (естественный язык, смешанный с некоторым программным кодом). Алгоритм вычисления площади круга можно описать следующим образом:
1. Прочитать радиус круга.
2. Вычислить площадь используя следующую формулу:
площадь = радиус * радиус * π
3. Показать результаты.
Совет: всегда полезно описать свою программу (или ее основную проблему) в виде алгоритма перед началом кодирования.
Когда вы кодите, то есть, когда вы пишете программу, вы переводите алгоритм в программу. Вы уже знаете, что каждая Java программа начинается с определения класса, в котором за ключевым словом class следует имя класса. Предположим, что вы выбрали ComputeArea как имя класса. Схема программы будет выглядеть так:
public class ComputeArea { // Подробности будут даны позже }
Как вы знаете, каждая программа Java должна иметь основной (main) метод, в котором начинается выполнение программы. Следовательно, программа расширяется следующим образом:
public class ComputeArea { public static void main(String[] args) { // Шаг 1: Считать радиус // Шаг 2: Рассчитать площадь // Шаг 3: Показать площадь } }
Программе необходимо прочитать радиус, введенный пользователем с клавиатуры. Это поднимает два важных вопроса:
- Чтение радиуса.
- Сохранение радиуса в программе.
Сначала рассмотрим второй вопрос. Чтобы сохранить радиус, программе нужно объявить символ, который называется переменной. Переменная представляет значение, хранящееся в памяти компьютера.
Вместо использования x и y в качестве имен переменных выбирайте описательные имена: в этом случае radius для радиуса и area для площади. Чтобы компилятор знал, чем являются radius и area, укажите их типы данных. Это тип данных, хранящихся в переменной, будь то целое, действительное число или что-то еще. Это называется объявлением переменных. Java предоставляет простые типы данных для представления целых чисел, действительных чисел, символов и булевых типов. Эти типы известны как примитивные типы данных или фундаментальные типы.
Реальные числа (т. е. числа с десятичной точкой) представлены с использованием метода, известного в компьютерах как плавающая точка. Таким образом, реальные числа также называются числами с плавающей точкой. В Java вы можете использовать ключевое слово double для объявления переменной с плавающей запятой. Объявите radius и area как double. Следовательно, программа может быть расширена следующим образом:
public class ComputeArea { public static void main(String[] args) { double radius; double area; // Шаг 1: Считать радиус // Шаг 2: Рассчитать площадь // Шаг 3: Показать площадь } }
Программа объявляет переменные radius и area. Зарезервированное слово double указывает, что radius и area являются значениями, которые хранятся на компьютере с плавающей запятой.
Первый шаг – предложить пользователю обозначить радиус круга. Вскоре вы узнаете, как запрашивать у пользователя информацию. Пока, чтобы узнать, как работают переменные, вы можете назначить фиксированное значение радиусу (переменной radius) в программе при написании кода; позже вы измените программу, чтобы запросить у пользователя это значение.
Второй шаг – посчитать площадь и присвоить результат выражения radius * radius * 3.14159 переменной area.
На последнем этапе программа отобразит значение area на консоли с помощью метода System.out.println.
В результате полная программа имеет вид:
public class ComputeArea { public static void main(String[] args) { double radius; // Объявить radius double area; // Объявить area // Присвоить значение радиуса radius = 20; // теперь радиус равен 20 // Посчитать площадь area = radius * radius * 3.14159; // Показать результаты System.out.println("Площадь круга с радиусом " + radius + " равна " + area); } }
Программа показывает площадь круга:
В Linux:
Листинг в NetBeans (с номерами строк):
Переменные, такие как radius и area, соответствуют местам памяти. Каждая переменная имеет имя, тип, размер и значение. Строка под номером 5 объявляет, что radius может хранить значение double. Значение не определено, пока вы его неназначили. Строка 9 назначает 20 в переменную radius. Аналогично, строка 6 объявляет переменную area, а строка 12 присваивает значение area. В следующей таблице показано значение в памяти для radius и area при выполнении программы. Каждая строка в таблице показывает значения переменных после выполнения оператора в соответствующей строке в программе. Этот метод рассмотрения работы программы называется трассировкой программы. Программы трассировки полезны для понимания того, как работают программы, и они являются полезными инструментами для поиска ошибок в программах.
Объединение строк
Знак плюс (+) имеет два значение: одно – это сложение, а второе – это конкатенация (объединение) строк. Знак плюса (+) в строках 15-16 называется оператором конкатенации строк. Он соединяет две строки в одну.
Объединение строк с числами
Если строка соединяется с числом, то число конвертируется (преобразовывается) в строку и объединяется с другой строкой. Следовательно, знак плюс (+) в строках 15-16 конкатенирует строки в одну более длинную строку, которая отображается в выводе. Строки и объединение строк будет рассмотрено в одной из последующих глав.
Внимание: в исходном коде строка не может быть разбита на несколько строк. Следовательно, следующая инструкция приведёт к ошибке компиляции:
System.out.println("Программирование на Java, вместе с Java9");
Для исправления этой ошибки, разбейте строку на две отдельные подстроки и используйте оператор конкатенации (+) для их объединения:
System.out.println("Программирование на Java, " + вместе с Java9");
Проверь себя:
Найдите и исправьте ошибки в следующем коде:
public class Test { public void main(string[] args) { double i = 50.0; double k = i + 50.0; double j = k + 1; System.out.println("j is " + j + " and k is " + k); } }