《Java 7程序设计入门经典》一3.1 从键盘输入字符

3.1 从键盘输入字符

到目前为止,本书中的示例程序都向用户显示信息,但不从用户接收信息。于是,只使用了控制台输出,没有使用控制台输入(即键盘输入)。主要原因在于,许多Java输入需要依赖和使用本书还未讲到的特性。这些特性在后面才会提及。另外,在真实情况下,许多Java程序和applet是图形界面或是窗口界面的,而不是控制台的。因此,本书的例子很少使用控制台输入。但是,有一种控制台输入相对容易使用,那就是从键盘读入字符。因为本章有许多需要用到这个特性的例子,所以在这里讨论它们。
我们将用System.in.read()方法来从键盘读入字符。System.in是System.out对应的对象。这是一个附着到键盘的输入对象。read()方法等待用户按键,并在用户按键后返回结果。字符以整数形式返回。所以,如果要将其赋给char型变量,必须使用强制类型转换。默认情况下,控制台的输入是行缓冲的(line buffered)。这里,术语“缓冲”(buffer)指的是一小部分用来在程序读取字符前保存字符的内存。在这个情况下,缓冲区存储一整行文本。由于缓冲了整行文本,因此必须在输入字符后敲击回车键才能将文本送入程序。下面的程序演示了如何从键盘读入字符。

以下是示例的运行结果。

注意,在程序中main()方法的开头如下所示:

因为使用了System.in.read(),所以程序必须指定抛出异常的语句throws java.io.IOException。这行代码对处理输入错误是必要的。这是Java的异常处理机制的一部分,将在第10章讨论。现在不需要关心它的精确意义。
有时,System.in的行缓冲特性会带来烦恼。当按回车键时,会往输入流输入回车符和换行符。在一些系统中,只会输入换行符。另外,在读取字符前,后来的字符不断追加到前面的输入缓冲中。于是,对于一些应用,需要在下次输入前通过读取字符来移除它们。在本章后面将会看到这样的例子。

时间: 2024-08-07 19:48:12

《Java 7程序设计入门经典》一3.1 从键盘输入字符的相关文章

《Java 7程序设计入门经典》一导读

前 言 本书通过Java语言来讲解编程的基础知识.该书假设读者之前没有任何编程经验.本书首先介绍最基本的知识,例如,如何编译和运行Java程序:接着,讨论关键字.运算符和一些形成Java语言的构造.本书还会涉及Java的应用编程接口(Application Programming Interface,API)库.其中,包括Swing框架,它可以用来创建具有图形用户界面(Graphical User Interface,GUI)的程序.还包括集合框架,它可以用来存储对象集合.简而言之,本书旨在对J

《Java 7程序设计入门经典》一3.17 习题

3.17 习题 1.写一个程序,从键盘读入字符,直到接收到一个英文句号(.).程序需要计算输入的空格的个数.在程序结束时输出总结果. 2.请写出if-else-if梯队的一般形式. 3.针对下列程序 其中最后的else子句与哪个if配对? 4.写一个for循环语句,从1000计数到0,步进值为-2. 5.下面的代码片段是否有效? 6.请解释break语句的用途(包括其两种形式.) 7.在下面的代码片段中,break语句执行后会显示什么? 8.下面程序片段的输出是什么? 9.for循环中的迭代表达

《Java 7程序设计入门经典》一3.12 do-while循环

3.12 do-while循环 最后一种Java循环是do-while循环.与在循环开始测试循环条件的for循环和while循环不同,do-while循环在每次循环结束时测试条件.这意味着,do-while循环总是至少执行一次.do-while循环的一般形式为: 尽管在只出现一条语句时可以不使用花括号,当它们常用来提供do-while结构的可读性,防止其与while语句混淆.只要条件表达式为真,do-while循环就不断迭代. 下面程序演示了do-while循环,直到用户输入字母q时循环结束.

《Java 7程序设计入门经典》一第3章 程序控制语句

第3章 程序控制语句 本章要点 从键盘中输入字符: 了解if语句的完整形式: 使用switch语句: 了解for循环的完整形式: 使用while循环: 使用do-while循环: 使用break跳出循环: 使用break来代替goto: 应用continue关键字: 循环嵌套. 本章将学习如何控制程序的执行流.Java的程序控制语句可以分为以下三类: 选择语句 迭代语句 跳转语句 选择语句允许程序选择不同的执行路径.迭代语句允许重复一段代码.跳转语句允许程序控制直接从一个地方跳转到另一个地方.J

《Java 7程序设计入门经典》一1.4 Java语言

1.4 Java语言 本书使用Java语言来讲解编程的基础知识.虽然其他编程语言也可以用来达到此目的,但是由于以下两个原因,本书选择了Java:首先,它是世界上使用最广泛的计算机语言之一.所以从实际的观点看,它是绝佳的学习语言.其次,它设计和实现了一些特性,这些特性使得对编程基础知识的介绍变得简单. 但是还有第三个原因.Java展现了现代编程的许多特点.对Java的理解可以使你像专业程序员一样看待和思考编程工作.它是这个时代定义的语言之一. 计算机语言演进是一个正在进行的历史过程,而Java是其

《Java 7程序设计入门经典》一2.15 表达式

2.15 表达式 运算符.变量和字面量都是表达式(expression)的组成部分.当在程序中遇到表达式时,会计算该表达式.因为它在前面的程序中已经用过,所以读者可能对表达式已有相当的直观理解.另外,Java的表达式也与代数中的表达式类似.但是,现在还是要讨论表达式的一些方面. 2.15.1 表达式中的类型转换 在表达式中,可能将两种或多种不同类型但互相兼容的数据混合.例如,因为short类型和long类型都是数值类型,所以在表达式中将它们混合使用.当一个表达式中混合不同种类的数据,它们会转换为

《Java 7程序设计入门经典》一2.11 速记赋值运算符

2.11 速记赋值运算符 Java提供了特别的速记(shorthand)赋值运算符,用于简化一些赋值语句代码.让我们从一些例子开始了解速记赋值运算符.赋值语句: 相同.这两个语句都是将x的值减去100赋予变量x. 在Java中,速记运算符可以用于所有的二元运算符(即需要两个操作数的运算符).速记运算符的一般形式为: var op= expression; 于是,算术速记运算符和逻辑速记运算符有以下几种: 因为这些运算符将运算与赋值结合起来,它们正式的名称是复合赋值运算符(compound ass

《Java 7程序设计入门经典》一1.1 计算基础

1.1 计算基础 考虑到你正在修一门编程课程,你可能已经对计算科学的基础知识有了一定的了解.但是,不是所有人都有同样的知识,或某些知识可能是不准确的.为此,在介绍Java语言之前,先介绍计算科学中的一些核心概念.在这个过程中,本章会定义一些关键术语. 1.1.1 计算机的硬件组成 由于计算机最终会运行编写的程序,因此了解计算机各部分运行的基本方式是有帮助的.任意一台计算机都由一系列的部件组成,它们协同运作,形成一个计算机整体.尽管计算机组成的部件随着时间推移不断演进,但是计算机仍有许多共同的关键

《Java 7程序设计入门经典》一2.3 字面量

2.3 字面量 在Java中,字面量(literal)指人类可以阅读的固定值的表示.例如,数100是字面量.字面量也常常称为常量(constant).大多数字面量及其用法非常直观,前面的示例程序中已经以各种形式使用过它们.现在正式地解释它们. Java的字面量可以是任意基本数据类型.每种字面量的表示取决于类型.如前所述,字符常量由单引号包括.例如,'a'和'%'都是字符常量. 整数字面量是没有小数部分的数.例如,10和-10是整数字面量.浮点字面量有小数点,小数点后是小数部分.例如,11.123