2009-7-29 1
Java程序设计
Programming in Java
2009-7-29 2
第 2章 结构化程序设计
2009-7-29 3
本章总体纲要
标识符和关键字
数据类型、直接量和变量
运算符
控制结构
结构化程序设计
2009-7-29 4
Java中的标识符
标识符可以用来标识变量名、类名、类中的方法名和文件名等,
– 标识符组成,(1) 字母,(2)数字,(3)下划线,_”
和 (4)美元符号,$”;
– 首字符必须是 (1)字母,(2)下划线,_” 和 (3)
美元符号,$”;
– 所有标识符是区分大小写的 ;
– 除去 关键字,false,true和 null;
2009-7-29 5
问题,是 /不是 标识符?
– myVariable
– 9pins
– MYVARIABLE
– i
– a+c
– testing1-2-3
–_myvariable
– java&uml
– My Variable
– $myvariable
– _9pins
– It's
– 猫
2009-7-29 6
Java关键字
具有特殊含义的字符序列
– 例如,public,static和 class
– 具有特殊用途,不能作为变量名、方法名和类名
2009-7-29 7
Java关键字 (50个 )
2009-7-29 8
本章总体纲要
标识符和关键字
数据类型、变量和直接量
运算符
控制结构
结构化程序设计
2009-7-29 9
数据类型
2009-7-29 10
变量
变量在计算机内部对应着一个存储单元,
而且总是具有某种数据类型:基本数据类型或引用数据类型
变量总是具有与其数据类型相对应的值
每个 变量 均具有,名字,类型,一定大小的 存储单元 以及 值
– 变量名对应内存的位置
2009-7-29 11
Java变量必须属于某种类型
变量值也必须与变量类型相匹配
例如,
int studentNumber; // 声明单个变量
double velocity,distance; // 声明多个变量
studentNumber=30; // 给变量赋以整数 30
int studentNumber=30;// 声明变量,并赋初值
2009-7-29 12
变量
图例,
– int sum = 0;
– String s =,Hello World!” ;
sum 0
s f789a1 Hello World!
2009-7-29 13
Java直接量
Java直接量包括基本数据类型直接量、字符串
(String)直接量和 null
– 布尔 (boolean)直接量只有两个,true 和 false
–?c?,?\u0061?,?\u0051? 和 ‘ \u005a? 是 char直接量,
– 34是 int直接量
– 1.5,45.6,76.4E8和 -32.0是 double直接量
– 34L是 long直接量,
– 1.5F,45.6f,76.4E8F和 -32.0F是 float直接量
–,Hello World!” 是 String直接量
– null是引用数据类型的直接量
任意引用数据类型的直接量 (null)
2009-7-29 14
字符 (char)直接量 (常用的转义字符 )
'\b' (退格 )
'\f' (换页 )
'\n' (换行 )
'\r' (回车 )
'\t' (水平制表符 (到下一个 tab位置 ))
'\' ' (单引号 )
'\" ' (双引号 )
'\\' (反斜杠 )
2009-7-29 15
本章总体纲要
标识符和关键字
数据类型、直接量和变量
运算符
控制结构
结构化程序设计
2009-7-29 16
Java运算符
1,算术运算符
2,关系运算符
3,布尔逻辑运算符
4,位运算符
5,赋值类运算符
6,条件运算符
7,其他运算符
2009-7-29 17
1,算术运算符
算术运算符包括,+,-,*,/,++,--,%
– 没有指数运算
Math.pow(2.0,3.0); // 2.03.0
– 整数除法:截去余数
7 / 5 结果为 1
– 取模:返回余数
7 % 5 结果为 2
2009-7-29 18
问题?
1) -7 / 5 =
2) -7 % 5 =
3) 7 % -5 =
4) 5.5 % 1.0 =
-1
-2
2
0.5
2009-7-29 19
2,关系运算符
六个关系运算符,<,>,<=,>=,== 和 !=
例如,
1 > 2; // false
3.5 != 1; // true
51.5 >= 23.0; // true
540 <= 654; // true
24 == 3*8; // true
boolean test1=(10 < 10); // test1= false;
2009-7-29 20
注意事项
<,>,<=和 >=只能用来比较两个数值类型数据 (numbers含 characters)的大小
– 不能用于 Strings,booleans,arrays或其他类型
2009-7-29 21
3.布尔逻辑运算符
六个布尔逻辑运算符,
1) & (逻辑与 AND)
2) | (逻辑或 OR)
3) ^ (逻辑异或 XOR )
4) ! (逻辑非 NOT)
单目运算符,即只有一个操作数
5) && (条件与 AND)
6) || (条件或 OR)
2009-7-29 22
4,位运算符
位运算符包括,&,|,~,^,>>,>>>和 <<
1) >> 带符号右移
2) << 左移
3) >>>不带符号右移
越晦涩难懂的,越会被 SCJP考到 (?)
移位操作是:先将整数写成二进制形式,然后按位操作,最后产生一个新的数
注意,只用于整数
2009-7-29 23
5,赋值类运算符
赋值类运算符包括,=,+=,-=,*=,/=、
&=,|=,%=,<<=,>>=和 >>>=
– op1=op1 二元运算符 op2;
– 等价于 op1二元运算符 = op2;
例如:
a=a+b;等价于 a+=b;
2009-7-29 24
6,条件运算符
条件运算符,?,”的表达式形式为,op1? op2,
op3”
– op1:布尔表达式
例如,
int k= ( (i>=0)? 1,-1);
2009-7-29 25
7,其他运算符
其他运算符包括,(类型 ),.,[ ],( )、
instanceof和 new
例如:
int a=51;
char c=(char)a;
2009-7-29 26
算符优先
不同的运算符具有不同的优先顺序
可以用 ( )来改变优先顺序或使表达式更容易理解
例如,
– a + b + c / 3
– (a + b + c ) / 3
2009-7-29 27
本章总体纲要
标识符和关键字
数据类型、直接量和变量
运算符
控制结构
结构化程序设计
2009-7-29 28
控制结构
1) if / else if / else
2) while
3) for
4) do while
5) switch case
6) break
7) continue
2009-7-29 29
控制结构
顺序结构
– Java最基本的结构
选择结构
– 三种类型,if,if/else和 switch
循环结构
– 三种类型,for,while和 do/while
2009-7-29 30
if语句
if语句的格式是,
if (布尔表达式 )
语句
– 或
if (布尔表达式 )
{
一条或多条语句
}
例如
if ( grade >= 60 )
System.out.println( "Passed" ); // Here could be {a statement block}.
2009-7-29 31
if-else语句
if-else语句的格式是,
if (布尔表达式 )
语句 1或语句块 1
else
语句 2或语句块 2
例如:
if (grade>60)
System.out.println("Passed!");
else
System.out.println("Failed!");
2009-7-29 32
条件运算符 (?,)
( cond? express1,express2 )
例 1
System.out.println(studentGrade >= 60? "Passed,,"Failed");
例 2
max = ( a > b? a,b );
if (a > b)
max = a;
else
max = b;
2009-7-29 33
一个简单的问题,用户输入一个学生分数来判断该学生是否及格?
2009-7-29 34
多分支选择结构 switch语句
switch语句的形式是,
switch (表达式 )
{
case 值 1:
语句组 1
break;
case 值 2:
语句组 2
break;
… …
case 值 n:
语句组 n
break;
default:
语句组 (n+1)
}
Break在带标号语句块使用
2009-7-29 35
根据考试成绩评定级别
2009-7-29 36
for循环语句
格式,
for (表达式 1;表达式 2;表达式 3)
语句或语句块也可写成,
表达式 1;
while (表达式 2 )
{
语句或语句块表达式 3;
}
2009-7-29 37
用输入对话框输入一个三位整数,判断该数是不是质数
2009-7-29 38
while循环语句
while循环语句格式为:
while (布尔表达式 )
语句或语句块
当条件 (布尔表达式 )为 true,则不断地执行语句或语句块
–,while” 循环中止条件是布尔表达式变为 false
– 如果布尔表达式一开始就为 false,则 不执行 循环体
2009-7-29 39
do/while循环语句
先执行,后判定条件
– 即循规环体至少执行 1次
格式
do
{
语句或语句块
}
while (布尔表达式 );
好的编程风格:总是以,{ }”引导循环体,即使语法上并不需要
2009-7-29 40
本章总体纲要
标识符和关键字
数据类型、直接量和变量
运算符
控制结构
结构化程序设计
2009-7-29 41
结构化程序设计结构化程序设计
= 数据 + 操作 + 流程控制 + 结构化程序设计方法
2009-7-29 42
流程控制
顺序结构
– Java中的最基本结构
选择结构
– if,if/else 和 switch
循环结构
– while,do/while 和 for
2009-7-29 43
结构化程序设计方法
只采用单输入 /单输出的控制结构结构化程序设计规则
1) 从“最简单”的基本结构出发
2) 任何一个矩形都能分解成两个顺行的矩形
3) 任何一个矩形都可以用前的控制结构替换
4) 规则 2) 和 3) 可以不断地进行下去,直接完成程序设计结构化程序设计规则嵌套规则
2009-7-29 44
作业
1,习题 2.2
2,习题 2.5
3,习题 2.8
4,习题 2.10