Читання даних з клавіатури

У цьому розділі ви дізнаєтеся, як програма може друкувати питання в командному вікні і розуміти відповіді, які користувач вводить з клавіатури Цього разу ми видалимо з класу FishMaster все жорстко задані значення, які він передає класу Fish Тепер програма буде задавати питання: «На яку глибину», А риба буде занурюватися відповідно з відповіддю користувача Ви вже багато разів користувалися стандартним висновком даних Systemout Між іншим, змінна out має тип javaioOutputStream Зараз я вам поясню, як працювати зі стандартним висновком даних Systemin Як ви, напевно, здогадалися, змінна in має тип javaioInputStreamСледующая версія класу FishMaster виводить в системну консоль рядок введення і чекає відповіді від користувача Після того, як користувач введе один або кілька символів і натисне клавішу Enter, JVM розміщує ці символи в обєкт класу InputStream і передає їх програміimport javaioIOException import javaioBufferedReader import javaioInputStreamReader

public class FishMaster {

public static void main(String[] args) { Fish myFish = new Fish(20)

String feetString=&quot"

int feet

/ / Створюємо обробник читання вхідного потоку InputStreamReader,

/ / Який підключений до Systemin і передаємо його буферизованного

/ / Оброблювачу читання BufferedReader

BufferedReader stdin = new BufferedReader

(new InputStreamReader(Systemin))

/ / Занурюємося кілька разів поки користувач не натисне

/ / Клавішу Q

while (true) {

Systemoutprintln (Чи готова до занурення На яку глибину”)

try {

feetString = stdinreadLine()

if (feetStringequals(&quotQ&quot)){

/ / Вихід з програми Systemoutprintln (Поки”) Systemexit (0)

}else {

/ / Перетворимо feetString в ціле число і занурюємося

/ / На глибину, яка визначається змінної feet

feet = IntegerparseInt(feetString)

myFishdive(feet)

}

} catch (IOException e) {

eprintStackTrace()

}

} / / Кінець while

} / / Кінець main

}

Діалог між користувачем і програмою FishMaster можетвиглядеть як: Готова до занурення На яку глибину

14

Занурююся на 14 м

Я на 34 м нижче рівня моря

Готова до занурення На яку глибину

30

Занурююся на 30 м

Я на 64 м нижче рівня моря

Готова до занурення На яку глибину Q

Поки Спочатку клас FishMaster створює потік BufferedReader, який підключений до стандартного вхідного потоку Systemin Після цього

він відображає повідомлення «Готова до занурення На яку глибину»І метод readLine () призупиняє виконання програми, поки користувач не натисне клавішу Enter Введене значення матиме тип String, тому клас FishMaster перетворює це значення в тип int і викликає метод dive () класу Fish Дана дія виконується в циклі, поки користувач не введе символ Q, Щоб вийти з програми Рядок   feetStringequals (Q) порівнює значення змінної feetString типу String і символ Q Щоб повністю отримати рядок, введену користувачем, за одну операцію ми використовували метод readLine () Однак є й метод Systeminread (), який дозволяє обробляти

Джерело: Java Programming for Kids, Parents and Grandparents by Yakov Fain

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*