Теперь также нет ошибки синтаксиса.
В предыдущем выполнении программы было показано, что, хотя программа не имеет синтаксических ошибок, это не означает, что она будет работать так как надо, или семантически правильно.
Давайте попробуем выполнить программу, нажав кнопку Run.
Если ввести те же баллы 100, 100 и 100, вычисляется окончательная оценка 100 и все сейчас должны быть счастливы.
Вопросы
Задача
Каким вы думаете будет значение переменной result после выполнения следующего сегмента Java кода?
int i = 1234567890;
float f = i;
int result = i – (int)f;
1. 0
2. nonzero
3. an error
Ответ: 2.
Оба int и float 32-битные типы.
Все 32-битные int используются для представления целой части числового значения.
Тем не менее, для float, некоторые биты используются для представления целой части и некоторые для десятичной части.
При присвоении большого целого значения переменной с плавающей точкой, уменьшенное количество битов для его целой части, возможно, не в состоянии точно представить большое значение.
Таким образом, вычисление разности между int и float переменных одного и того же большого численного значения, не всегда может дать результат 0.
Вы можете проверить код, указанный выше, в программе Java.
Обсуждение отладки
Достаточно часто случается, что мы не можем написать без ошибок программу с первой попытки.
Нам часто нужно отлаживать нашу программу несколько раз, чтобы сделать безупречную версию.
Ниже пример программы содержит ряд ошибок. Попробуйте определить все эти ошибки.
Ответ:
Простой IO
Когда мы обсуждали аппаратную часть компьютера, мы говорили, что компьютеры взаимодействуют с пользователями через устройства ввода и вывода.
Большинство языков программирования высокого уровня обеспечивают стандартные методы ввода и вывода программ для получения информации от пользователей и вывода результатов пользователям для просмотра.
В Java, стандартные методы для вывода текста в консоль являются System.out.println и System.out.print.
System представляет собой класс Java.
Вы видели println в программе HelloWorld.
Разница между print и println в том, что println будет переводить на новую строку после печати, в то время как print останется на той же строке.
Технически, println и print являются методами класса PrintStream.
Обратите внимание, что они разделены точкой или оператором точка.
Я вернусь к этому, когда будем обсуждать классы, объекты и методы позже.
Есть аналогичные стандартные методы для ввода на основе класса Scanner, но он немного неуклюжий, поэтому здесь создан свой пользовательский класс ввода-вывода I/O с именем IO в качестве оболочки, который будет сочетать как ввод, так и вывод и, надеюсь, предоставляет более простой в использовании интерфейс ввода / вывода для вас.
Методы обертки очень часто используются в Java.
Они в основном предоставляют альтернативный интерфейс на основе существующих методов, чтобы удовлетворить определенной цели.
В этом случае, новый класс I/O, можно надеяться, будет легче в изучении для начинающих программистов.
Я вернусь к классу Scanner, когда мы будем обсуждать файловый ввод/вывод.
Методами вывода являются IO.outputln и IO.output.
Вы видели их обоих в программе CourseGrade.
Разница между ними состоит в том, что IO.outputln будет перемещаться на новую строку, в то время как IO.output останется на той же строке.
Два метода output и outputln берут строку символов в качестве параметра и выводят ее в консоль.
В случае println, finalGrade, который имеет double тип, будет преобразован в символьную строку, и знак плюс, который вы видите здесь является оператором конкатенации, который соединяет две строки в единую строку символов.
Методы ввода – это IO.inputInteger для целых чисел и IO.inputDouble для double.
Вы видели IO.inputDouble, когда программа просила пользователя ввести examScore, labScore и hwScore.
Аналогичным образом, IO.inputInteger может быть использован для ввода целых.
Для того чтобы использовать класс IO, есть еще одна вещь, которую вы должны будете сделать.
Вам нужно импортировать пакет comp102x, который предоставлен в виде библиотеки.
В частности, необходимо будет включить выражение «import comp102x.IO;» в начало программы.
Где import является зарезервированным словом Java.
Вы увидите много примеров по использованию import и этих методов ввода-вывода далее.
Я хочу сказать немного больше о пользовательском интерфейсе для ввода, особенно для чисел и текста, что часто бывает необходимо во многих приложениях.
Например, когда вы идете в супермаркет, представьте, как долго вы будете рассчитываться, если кассир должен вводить каждый элемент, который вы приобрели, с помощью клавиатуры.
Обратите внимание, что не только цены должны быть введены, магазину необходимо также вести учет всех деталей для каждой транзакции, то есть, должно быть введено название каждого элемента и т.д.