Java 语言概述 (5)
辽宁经济职业技术学院信息系
硕士、副教授 陈英
Java的程序控制结构
块作用域,
1) 一个块或复合语句是用一对花括号括起的
任意数量的简单 java语句。
2) 块定义了一个变量的作用范围。
3) 块可以被嵌套在另一个块内。
4) 不能在两个嵌套的块内声明相同名字的变
量。
if条件语句
(1) if (布尔表达式 ){
语句或块;

(2)if (条件为真 ) {
语句或块;

else {
语句或块;

条件语句使部分
程序可根据某些表
达式的值被有选择
地执行。
Java编程语言支
持双路 if和多路
switch分支语句。
if条件语句
Java中的条件语句形式如下:
if (condition) statement
例,if (number%2 != 0) //Test if number is odd
+ +number; //If so make it even
1) If语句会通过对比除以 2以后得到的余数是否为 0来测试
number的值是否为奇数。如果余数为 0,则 number的
值为奇数,因此把其值加 1使之成为偶数。如果 number
的值为偶数值,则增大 number值的语句将不执行。
2) 注意语句缩进的设置。这是为了表示后面的语句要受到 if
条件的影响。在 Java编程中应该对语句进行适当的缩进
处理以使程序结构更清晰。
3) 上面的示例也可以写成如下形式:
if (number%2 != 0) + +number;
if条件语句
条件语句使部分程序可根据某些表达式的值被
有选择地执行 。
在 Java编程语言中,if ()用的是一个布尔表达
式,而不是数字值,这一点与 C/C++不同 。前
面已经讲过,布尔类型和数字类型不能相互转
换 。
如果出现下列情况,
if (x) // x is int
你应该使用下列语句替代:
if (x ! = 0)
全部 else部分是选择性的,并且当测试条件为
假时如不需做任何事,else部分可被省略
多种选择 —— Switch语句
Switch语句可以从多种选项中根据表达式的一
组固定的值进行选择。
这个表达式只能得出类型为 char,byte,short
或者 int的结果,不能使用 long,否则语句将无
法编译。
在正常情况下,它很像一个旋转开关,可供用
户从一组固定的选项中选择。
Switch语句从与选择值相匹配的 case标签处开
始执行,一直执行到下一个 break处或 switch的
末尾。
如果没有与之匹配的 case标签,那么执行
default子句,如果此子句存在的话。
switch语句
switch语句的句法是,
switch (expr1){
case expr2:
statements;
break;
case expr3:
statements;
break;
default:
statements;
break;

注意 ──在 switch (expr1) 语句
中,expr1必须与 int类型是赋
值兼容的; byte,short或 char
类型可被升级;不允许使用
浮点或 long表达式。
当变量或表达式的值不
能与任何 case值相匹配时,可
选缺省符( default)指出了
应该执行的程序代码。如果
没有 break语句作为某一个
case代码段的结束句,则程序
的执行将继续到下一个 case,
而不检查 case表达式的值。
循环语句
循环语句使语句或块的执行得以重复进行。
Java编程语言支持三种循环构造类型,for,
while和 do loops。 for和 while循环是在执行循
环体之前测试循环条件,而 do loops是在执行
完循环体之后测试循环条件。
这就意味着 for和 while循环可能连一次循环体
都未执行,而 do loops将至少执行一次循环体 。
循环语句
不确定循环 —— while循环,只有当条件为真时
才执行循环体。它的语法如下:
while (condition) statement
while循环要先测试循环条件。所以其循环体中
的代码可能永远不会执行。
如果要确保循环体至少被执行一次,应该把测
试条件放到最后,即 do/while循环。
不确定循环 —— do/while循环,它的语法如下:
do statement while (condition);
do/while语句先执行循环体,然后测试条件接
着再执行循环体,然后再测试条件,如此反复
循环。
确定循环 —— for语句
For循环是一个支持重复的普遍结构,可以通过计数
器或在每次重复修改某个类似计数器变量的值来控制
它。 例,for (int i=0;i<= 10;i++)
System.out.println( i );
For语句的第一个控制表达式是初始化计数器;
第二个控制表达式给出了每次循环前进行测试的条件;
第三个控制表达式指示了如何更新计数器。
for (init_expr; boolean testexpr; alter_expr){
statement or block

确定循环 —— for语句
注意 ──Java编程语言允许在 for () 循环结构中
使用逗号作为分隔符 。
例 1
for (i= 0,j = 0; j<10; i++,j++)是合法的;它将 i
值初始化为零, 并在每执行完一次循环体后,
增加一次它们的值 。
例 2
for (int i = 0; i < 10; i++) {
System.out.println("Are you finished yet?");
}
System.out.println("Finally!");
while循环
while循环的句法是:
while (布尔表达式 ) {
语句或块

例 3
int i = 0;
while (i < 10) {
System.out.println("Are you finished yet?");
i++;
}
System.out.println("Finally!");
请确认循环控制变量在循
环体被开始执行之前已被正确
初始化, 并确认循环控制变量
是真时, 循环体才开始执行 。
控制变量必须被正确更新以防
止死循环 。
do循环
do循环的句法是,
do {
语句或块;

while (布尔测试 )
例如:
int i = 0;
do {
System.out.println("Are you finished yet?");
i++;
} while (i < 10);
System.out.println("Finally!");
象 while循环一样, 请确认循环
控制变量在循环体中被正确初始
化和测试并被适时更新 。
作为一种编程惯例, for循环一般
用在那种循环次数事先可确定的
情况, 而 while和 do用在那种循环
次数事先不可确定的情况 。
特殊循环流程控
下列语句可被用在更深层次的控制循环语句中:
Break语句, break语句被用来从 switch语句、
loop语句和预先给定了 label的块中退出。
continue语句, continue语句被用来略过并跳
到循环体的结尾。
label 语句,label可标识控制需要转换到的任
何有效语句,它被用来标识循环构造的复合语
句。
特殊循环流程控
Break语句:在 switch结构中,break语句用来
退出 switch结构,使程序从 switch结构后面的
第一条语句开始执行。
在 java中,还可以用 break语句退出循环,并
从紧跟该循环结构的第一条语句处开始执行。
Cotinue语句,continue语句跳过循环体中下面
尚未执行的语句,回到循环体的开始处继续下
一轮循环。
当然,在下一轮开始前,要先进行终止条件的
判断,以决定是否继续循环。对于 for循环语句,
在终止条件的判断前,还要先执行迭代语句。
三种循环类型的流程
For循环
初始化计数器
测试条件
是否为 true?
执行循环语句
计数器值递增
下一条语句


while循环
测试条件
是否为 true?
执行循环语句
下一条语句


Do-while循环


执行循环语句
测试条件
是否为 true?
下一条语句
文本流的 API帮助文档
InputStreamReader类可以把一个包含
了使用某种字符编码的字节的输入流转
换成一个发送 Unicode字符的读取器。
下面代码创建了一个输入读取器,它可
以读取控制台的击键并且自动把们转化
为 Unicode字符。
InputStreamReader in = new InputStreamReader
(System.in)
文本流的 API帮助文档
BufferedReader类作为文本输入唯一的类,它有一
个方法 readLine能够读取一行文本。
需要把一个缓冲的读取器同一个输入源结合起来。
下面 7行语句的作用是从键盘输入一个整数存放到
变量 x中。
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
System.out.println("Input x is,");
String s=in.readLine();
int x=Integer.parseInt(s);
若要从文本输入中读
取数字,您好需要首
先读取一个字符串后
抒它转化为一个数字。