1、2.1 Java 符号符号2.2 Java 数据类型与变量数据类型与变量2.3 表达式与运算符表达式与运算符2.4 常见类型数据的输入输出常见类型数据的输入输出2.5 流程控制语句流程控制语句2.6 方法方法2.7 数组数组2.1.1 2.1.1 标识符标识符1.1.标识符的定义标识符的定义 标识符是标识符是以字母,下划线(以字母,下划线(_ _),美元符美元符($)($)开始开始的的一个字符序列,后面可以跟字母,下划线,美元符,一个字符序列,后面可以跟字母,下划线,美元符,数字。数字。2.注意几点:注意几点:(1)Java的保留字不能作为标识符。的保留字不能作为标识符。(2)Java是大小写
2、敏感的语言。是大小写敏感的语言。(3)能见名知义。能见名知义。2.1.2 2.1.2 关键字关键字 一些单词赋以特殊的用途,不能当作一般的标一些单词赋以特殊的用途,不能当作一般的标识符使用,这些单词称为关键字(识符使用,这些单词称为关键字(Key wordKey word)或保)或保留字留字(reserved word)(reserved word)。有关Java关键字要注意两点:Java语言中的关键字均为小写字母表示。TRUE、NULL等不是关键字。goto和const虽然在Java中没有作用,但仍作为关键字保留。2.2.1 2.2.1 数据类型数据类型2.2.1 基本数据类型基本数据类型关
3、键字关键字 数据类型数据类型 所占字节所占字节 默认值默认值 取值范围取值范围 byte 字节型字节型 1 1 0-2727-1 short 短整型短整型 2 0-215215-1 int 整型整型 4 0-231231-1 long 长整型长整型 8 0-263263-1 float 单精度浮点型单精度浮点型 4 0.0F 3.4e-038 3.4e+038 double 双精度浮点型双精度浮点型 8 0.0D 1.7e-038 1.7e+038 char 字符型字符型 2 0 0 65535 boolean 布尔型布尔型 1 false true,false 2.2.2 2.2.2 常量常
4、量1布尔常量布尔常量 布尔常量只有true和false两个取值。2.2.2 2.2.2 常量常量2整数常量整数常量 不带小数的数,但包括负数不带小数的数,但包括负数。在Java中整数常量分为long、int、short和byte四种类型,Java语言的整型常量默认为语言的整型常量默认为int类型类型 Java中对于数值数据的表示有以下三种形式:十进制:数据以非0开头,例如:4,-15;八进制:数据以0开头,例如:054,012;十六进制:数据以0 x开头,例如:0 x11,0 xAD00 2.2.2 2.2.2 常量常量3浮点常量浮点常量 也称实数,包括两种类型:也称实数,包括两种类型:flo
5、at和和double 浮点常量有两种表示形式:浮点常量有两种表示形式:小数点形式小数点形式:如:如:6.37,-0.023;指数形式指数形式:也称科学表示法,:也称科学表示法,如:如:3e-2代表代表0.03,3.7E15代表代表3.7*1015区分类型区分类型-在常量后面加后缀修饰在常量后面加后缀修饰 Float类型以F/f结尾,double类型以D/d结尾。如果浮点常量不带后缀,则默认为双精度常量。如果浮点常量不带后缀,则默认为双精度常量。2.2.2 2.2.2 常量常量4.字符常量字符常量 字符常量是由一对单引号单引号括起来的单个字符或以反斜线反斜线()开头的转义符转义符,Java的字符
6、编码采用了国际统一标准的Unicode码(2字节)转义字符转义字符 描述描述 单引号字符单引号字符 双引号字符双引号字符 反斜杠反斜杠 r 回车回车 n 换行换行 f 走纸换页走纸换页 t 横向跳格横向跳格 b 退格退格 2.2.2 2.2.2 常量常量5字符串常量字符串常量 由双引号括起来的有0到多个字符组成的字符系列。例如:-含0个字符 -含1个空格 a,123 456 1 变量的定义与赋值变量的定义与赋值 变量必须先声明,后使用。声明格式:类型声明格式:类型 变量名变量名=值值,变量名,变量名=值值,;例:double m,n=0;变量的命名要符合标识符的规定;在一定范围内不能定义两个同
7、名的变量在一定范围内不能定义两个同名的变量;程序中用变量名来引用变量的数值。2变量的取值范围变量的取值范围 不同数值型变量的存储空间大小不同,因此能存储的数值范围也不同。各种数值变量对应的包装类中分别定义了两个属性常量MAX_VALUE和MIN_VALUE指示相应基本类型的数值范围 字节型的取值范围是:字节型的取值范围是:-128 127 短整型的取值范围是:短整型的取值范围是:-32768 32767 整型的取值范围是:整型的取值范围是:-2147483648 2147483647 长整型的取值范围是:长整型的取值范围是:-9223372036854775808 92233720368547
8、75807 单精度浮点型的取值范围是:单精度浮点型的取值范围是:1.4E-45 3.4028235E38 双精度浮点型的取值范围是:双精度浮点型的取值范围是:4.9E-324 1.7976931348623157E308 3 赋值与强制类型转换赋值与强制类型转换 赋值语句的格式:变量变量=表达式;表达式;先计算右边表达式的值,再将结果赋给左边的变量。x=x+1;自动转换的次序为:byte-short-char-int-long-float-double强制类型转换格式为:变量变量=(数据类型数据类型)表达式表达式 赋值号两边数据类型不一致的处理:例例2-2 简单数据类型输出 public cl
9、ass SimpleDataType public static void main(String args )int i=3;byte bi=(byte)i;short si=20000;int li=(int)4.25;float f=3.14f;System.out.println(bi+t+si+t+i+t+li+t+f);2.3 表达式与运算符表达式与运算符 运算符按操作数的数目分类:运算符按操作数的数目分类:一元运算符:只需要一个运算对象的运算符称为一一元运算符:只需要一个运算对象的运算符称为一元运算符。元运算符。例:例:x=-x;二元运算符:需要两个运算对象的运算符号称为双二元运
10、算符:需要两个运算对象的运算符号称为双元操纵符。元操纵符。例:例:x=x+2;三元运算符:三元运算符需要三个运算对象。三元运算符:三元运算符需要三个运算对象。Java有一个三元运算符有一个三元运算符“?:”,它是一个简要的,它是一个简要的ifelse语句。语句。1.双目算术运算符双目算术运算符 运算符 使用形式 描述 举例 结果+op1+op2 op1 加上op2 5+6 11-op1-op2 op1 减去op2 6.2-2 4.2*op1*op2 op1乘以op2 3*4 12/op1/op2 op1 除以op2 7/2 3%op1%op2 op1 除以op2的余数 9%2 1 几点注意几点
11、注意:“/”运算对与整数和浮点数情况不同,7/2结果为结果为3,而,而7.0/2.0结果为结果为3.5。取模运算“%”一般用于整数运算,它是用来得到余数部分。例如:7%4的结果为3。但当参与运算的量为负数时,结果的正当参与运算的量为负数时,结果的正负性取决与被除数的正负负性取决与被除数的正负。例例2-3 取模运算 public class test public static void main(String a)System.out.print(7%-2+t);System.out.print(7%2+t);System.out.print(-7%2+t);System.out.printl
12、n(-7%-2+t);System.out.println(7.2%2.8=+7.2%2.8);【运行结果】1 1 -1 -1 7.2%2.8=1.6000000000000005 2.单目算术运算符单目算术运算符 运算符运算符 使用形式使用形式 描述描述 功能等价功能等价+a+或或+a 自增自增 a=a+1-a-或或-a 自减自减 a=a-1-a 求相反数求相反数 a=-a 几点说明:几点说明:变量的自增与自减与变量的自增与自减与+出现的前后位置无关。出现的前后位置无关。无论是无论是+x还是还是x+均表示均表示x要增要增1。表达式的值与运算符位置有关。表达式的值与运算符位置有关。public
13、 class test public static void main(String args)int a=2;a+;System.out.println(a=+a);int m=a+;System.out.println(a=+a+,m=+m);int n=+a;System.out.println(a=+a+,n=+n);思考运行结果?思考运行结果?a=3 a=4,m=3 a=5,n=5运算符运算符 用法用法 描述描述 举例举例 op1 op2 op1 op2 op1op1大于大于op2 op2 x3 x3=op1=op2 op1=op2 op1op1大于等于大于等于op2 op2 x=4
14、 x=4 op1 op2 op1 op2 op1op1小于小于op2 op2 x 3 x 3=op1=op2 op1=op2 op1op1小于等于小于等于op2 op2 x=4 x 2);如果将代码改为:如果将代码改为:System.out.println(x/02)|(x=3);则运行时将产生算术运算异常,不能用则运行时将产生算术运算异常,不能用x去除去除0。位运算位运算运算符运算符 用法用法 操作操作 op 结果是结果是op按比特位求反按比特位求反 Op1 op2 将将op1右移右移op2个位(带符号)个位(带符号)Op1 op1 op2 将将op1右移右移op2个位(不带符号的右移)个位
15、(不带符号的右移)&Op1&op2 op1 和和 op2都是都是true|Op1|op2 op1 或或 op2是是true Op1 op2 op1和和op2是不同值是不同值 是对操作数以二进制比特是对操作数以二进制比特(bit)(bit)位为单位进行的操作运算位为单位进行的操作运算1 1 移位运算符移位运算符-使用示例 x x(十进(十进制表示)制表示)二进制补二进制补码表示码表示 x2 x2 x2 x2 x2 30 30 00011110 00011110 01111000 01111000 00000111 00000111 00000111 00000111-17-17 11101111
16、 11101111 10111100 10111100 11111011 11111011 00111011 00111011 在处理带符号的右移中,右移后左边的留出的空位上复制的在处理带符号的右移中,右移后左边的留出的空位上复制的原数的符号位。而不带符号的右移中,右移后左边的空位一原数的符号位。而不带符号的右移中,右移后左边的空位一律填律填0。带符号的左移在后边填补。带符号的左移在后边填补0。数据在计算机内是以二进制补码的形式存储,正负数的区别数据在计算机内是以二进制补码的形式存储,正负数的区别看最高位:看最高位:0代表正数;代表正数;1则为负数则为负数 2 2按位逻辑运算按位逻辑运算 x=
17、13,y=43,计算各运算结果。首先,将数据转换为二进制形式:x=1101,y=101011 以字节数据为例,x和y均占用一个字节,所以x和y的二进制为:x=00001101,y=00101011 x结果应为结果应为11110010,十进制结果为,十进制结果为-14。x&y=1001,也即十进制的,也即十进制的9 赋值组合运算符赋值组合运算符是指在赋值运算符的左边有一个其它运算符是指在赋值运算符的左边有一个其它运算符 例如:例如:x+=2;/x+=2;/相当与相当与x=x+2 x=x+2 其功能是先将左边变量与右边的表达式进行某种运其功能是先将左边变量与右边的表达式进行某种运算后算后,再把运算
18、的结果赋给变量。再把运算的结果赋给变量。能与赋值符结合的运算符包括:能与赋值符结合的运算符包括:算术运算符:算术运算符:+,-,*,/,%位运算符:位运算符:&,|,位移运算符:位移运算符:,其它运算符其它运算符 运算符运算符 描述描述?:作用相当于作用相当于if-else语句语句 用于声明数组,创建数组以及访问数组元素用于声明数组,创建数组以及访问数组元素.用于访问对象实例或者类的类成员函数用于访问对象实例或者类的类成员函数(type)强制类型转换强制类型转换 new 创建一个新的对象或者新的数组创建一个新的对象或者新的数组 instanceof 判断对象是否为类的实例判断对象是否为类的实例
19、 JavaJava运算符的优先级与结合性运算符的优先级与结合性 运算符运算符 描述描述 优先级优先级 结合性结合性 ()()圆括号圆括号 15 15 左左 new new 创建对象创建对象 15 15 左左 数组下标运算数组下标运算 15 15 左左 .访问成员(属性、方法)访问成员(属性、方法)15 15 左左 +,-后缀自增、自减后缀自增、自减1 14 14 右右 +,-前缀自增、自减前缀自增、自减1 13 13 右右 按位取反按位取反 13 13 右右 !逻辑非逻辑非 13 13 右右 -、+算术符号(负、正号)算术符号(负、正号)13 13 右右 (typetype)强制类型转换强制类
20、型转换 13 13 右右 *、/、%乘、除、取模乘、除、取模 12 12 左左 +、-加、减加、减 11 11 左左 、移位移位 10 10 左左 JavaJava运算符的优先级与结合性运算符的优先级与结合性 (续)(续)、=instanceof 关系运算关系运算 9 9 左左 =、!=相等性运算相等性运算 8 8 左左&位逻辑与位逻辑与 7 7 左左 位逻辑位逻辑异或异或 6 6 左左|位逻辑位逻辑或或 5 5 左左&逻辑与逻辑与 4 4 左左|逻辑逻辑或或 3 3 左左?:条件运算符条件运算符 2 2 右右 =+=-=*=/=%=&=|=赋值运算符赋值运算符 1 1 右右 2.3.7 2.
21、3.7 常用数学函数常用数学函数常量常量Math.PIMath.PI代表数学上的代表数学上的 Math.EMath.E代表数学上的代表数学上的e e Math类的主要方法类的主要方法 int abs(int i)int max(int i1,int i2)double floor(double d)double random()long round(double d)double log(double d)double exp(double x)double pow(double a,double b)double sqrt(double a)double cos(double d)产生产生0
22、101之间随机数,之间随机数,不包括不包括0 0和和1 1思考思考?X=(X=(intint)(Math.Math.randomrandom()()*100100)不大于不大于d d的最大整数的最大整数 求最靠近求最靠近d d的整数的整数 1.1.字符类型数据的输入字符类型数据的输入 利用标准输入流利用标准输入流(System.in)(System.in)的的read()read()方法,可方法,可以从键盘读取字符。但要注意,以从键盘读取字符。但要注意,read()read()方法从键盘获方法从键盘获取的是输入的字符的字节表示形式(返回结果为取的是输入的字符的字节表示形式(返回结果为intin
23、t类型),需要使用强制转换将其转化为字符型类型),需要使用强制转换将其转化为字符型 char c=(char)System.in.read();char c=(char)System.in.read();例例2-4 2-4 字符的输入字符的输入 import java.io.import java.io.*;public class InputChar public class InputChar public static void main(String args)public static void main(String args)char char c=;c=;System.out.
24、print(Enter a character please:);System.out.print(Enter a character please:);try c=(char)System.in.read();try c=(char)System.in.read();catch(IOException e)System.out.println(e);catch(IOException e)System.out.println(e);System.out.println(Youve entered a character:System.out.println(Youve entered a c
25、haracter:+c);+c);2 2字符串的输入字符串的输入 方法方法1 1:利用获取字符的办法将一个个字符拼接为一:利用获取字符的办法将一个个字符拼接为一个字符串。但这样做除了编程复杂外,更重要的是个字符串。但这样做除了编程复杂外,更重要的是效率也比较低效率也比较低;方法方法2 2:将键盘输入的数据看作字符流,利用:将键盘输入的数据看作字符流,利用InputStreamReaderInputStreamReader将从键盘输入的字节流数据转将从键盘输入的字节流数据转化为字符序列来识别化为字符序列来识别 。利用。利用BufferedReaderBufferedReader对字符对字符流序列
26、进行过滤,借助流序列进行过滤,借助BufferedReaderBufferedReader流对象提供流对象提供的方法的方法readLine()readLine()从键盘读取一个字符串。从键盘读取一个字符串。通过流变换获取字符串通过流变换获取字符串System.inread(byte b):读一系列字节InputStreamReader字节流字符流BufferedReaderread(char cbuf):读一系列字符readLine():读一行字符串(String)InputStream带缓冲的字符流例例2-5 2-5 字符串类型数据输入字符串类型数据输入 import java.io.*;p
27、ublic class InputString public static void main(String args)String s=;System.out.print(Enter a String please:);try BufferedReader in=new BufferedReader(new InputStreamReader(System.in);s=in.readLine();catch(IOException e)System.out.println(Youve entered a String:+s);利用命令行参数获取字符串输入利用命令行参数获取字符串输入 在在ma
28、inmain方法中的参数数组记录的是命令行的所有方法中的参数数组记录的是命令行的所有参数,每个参数为一个数组元素,例如:第一个参参数,每个参数为一个数组元素,例如:第一个参数为数为args0,args0,第第2 2个参数为个参数为args1,args1,依此类推,依此类推,数组的大小取决与参数个数。如果执行本例的程序数组的大小取决与参数个数。如果执行本例的程序输入如下命令,则命令行参数输入如下命令,则命令行参数args0args0为为“hellohello”,args1,args1为为 “ok,byeok,bye”。java InputString java InputString hello
29、 ok,bye hello ok,bye 注意,命令行参数间用空格隔开。注意,命令行参数间用空格隔开。3.3.整数和双精度数的输入整数和双精度数的输入 先通过上面的方法获取一个由数字字符组成的字符串,先通过上面的方法获取一个由数字字符组成的字符串,然后通过下面的转换方法转换成需要的数据。然后通过下面的转换方法转换成需要的数据。Integer.parseInt(String)Integer.parseInt(String):将数字字符串转化为整数:将数字字符串转化为整数 Double.parseDouble(String)Double.parseDouble(String):将字符串形式的数字数
30、据:将字符串形式的数字数据转化为双精度数。转化为双精度数。使用使用java.util.Scannerjava.util.Scanner类类一个一个扫描器扫描器,使用分隔符分解使用分隔符分解它的输入,默认情况它的输入,默认情况下用下用空格作为分隔符。空格作为分隔符。ScannerScanner的输入源取决于构造参数,以的输入源取决于构造参数,以下从标准输入(键盘)获取下从标准输入(键盘)获取数据数据 Scanner Scanner scannerscanner=new Scanner(=new Scanner(System.inSystem.in););常用方法:常用方法:boolean has
31、Next():判是否有下一个数据int nextInt():读取整数double nextDouble():读取双精度数String nextLine():读取一行字符串ScannerScanner使用举例使用举例-求求3 3个整数的最大数个整数的最大数import java.util.Scanner;import java.util.Scanner;public class testpublic class test public static void main(String args)Scanner s=new Scanner(System.in);System.out.print(请输
32、入3个数,用空格隔开:);int a=s.nextInt();int b=s.nextInt();int c=s.nextInt();int m=(a b)?a:b;m=(m c)?m:c;System.out.println(最大者=+m);2.4.3 2.4.3 用用swingswing对话框实现输入输出对话框实现输入输出import javax.swing.import javax.swing.*;public class Test2public class Test2 public static void main(String args)public static void main
33、(String args)String s=String s=JOptionPane.JOptionPane.showInputDialogshowInputDialog(请输入你的姓名:请输入你的姓名:););JOptionPane.JOptionPane.showMessageDialogshowMessageDialog(null,(null,华东交大欢迎你:华东交大欢迎你:+s);+s);例例2-8 2-8 用用SwingSwing对话框输入和显示数据对话框输入和显示数据 1.if1.if语句语句(1 1)格式)格式1 1:无:无elseelse的的if if语句语句 if(boole
34、an-expression)if(boolean-expression)statement1;statement1;例例2-6 2-6 从键盘输入三个数,输出其中的最大者。从键盘输入三个数,输出其中的最大者。import java.io.import java.io.*;public class Max public class Max public static void main(String args)public static void main(String args)int a,b,c,max;String s;int a,b,c,max;String s;try try Buff
35、eredReader br=BufferedReader br=new BufferedReader(new new BufferedReader(new InputStreamReader(System.in);InputStreamReader(System.in);System.out.print(System.out.print(输入第一个整型数:输入第一个整型数:););s=br.readLine();s=br.readLine();a=Integer.parseInt(s);a=Integer.parseInt(s);/同上三行给同上三行给b,cb,c赋值赋值例例2-6(2-6(续
36、)续)max=a;max=a;if(bmax)max=b;if(bmax)max=b;if(cmax)max=c;if(cmax)max=c;System.out.println(System.out.println(三个数中最大值是三个数中最大值是:+max);:+max);catch(IOException e)catch(IOException e)格式格式2 2:带:带elseelse的的if if语句语句 if(boolean-expression)if(boolean-expression)statement1;/ifstatement1;/if块块 else else state
37、ment2;/else statement2;/else块块 if if语句的嵌套语句的嵌套 (求求a a、b b、c c三个数中最大数三个数中最大数 )if(ab)if(ab)if(ac)if(ac)System.out.println(System.out.println(三个数中最大值是三个数中最大值是:+a);:+a);else else System.out.println(System.out.println(三个数中最大值是三个数中最大值是:+c);:+c);else /a=belse /acbc)System.out.println(System.out.println(三个数
38、中最大值是三个数中最大值是:+b);:+b);else else System.out.println(System.out.println(三个数中最大值是三个数中最大值是:+c);:+c);最近匹配原则最近匹配原则 if(x6)if(x3)if(x3)System.out.println(3x6);System.out.println(3x=6);System.out.println(x=6);如果如果x的值为的值为8,输出结果,输出结果?让让elseelse语句匹配前一个语句匹配前一个if ifif(x6)if(x3)if(x3)System.out.println(3x6);Syste
39、m.out.println(3x=6);System.out.println(x=6);思考运行结果?思考运行结果?public class test public class test public static void main(String args)public static void main(String args)int x=1,y=1,z=1;int x=1,y=1,z=1;if(x-=1&y+=1|z+=1)if(x-=1&y+=1|z+=1)System.out.println(x=+x+,y=+y+,z=+z);System.out.println(x=+x+,y=+y
40、+,z=+z);例例2-7 2-7 输入一个学生的成绩,根据分数段输出信息。输入一个学生的成绩,根据分数段输出信息。public class Score public class Score public static void main(String args)public static void main(String args)int s;int s;s=Integer.parseInt(args0);/s=Integer.parseInt(args0);/命令行参数命令行参数 if(s60)if(s60)System.out.println(System.out.println(不及格
41、不及格););else else if(s70)if(s70)System.out.println(System.out.println(及格及格););else else if(s80)if(s80)System.out.println(System.out.println(中中););else else ./写什么?写什么?阶梯阶梯else if else if public class Score public class Score public static void main(String args)public static void main(String args)int s
42、;int s;s=Integer.parseInt(args0);s=Integer.parseInt(args0);if(s60)if(s60)System.out.println(System.out.println(不及格不及格););else if(s70)else if(s70)System.out.println(System.out.println(及格及格););else if(s80)else if(s80)System.out.println(System.out.println(中中););else if(s90)else if(s90)System.out.printl
43、n(System.out.println(良良););else else System.out.println(System.out.println(优优););2 2多分支语句多分支语句switch switch switch(expression)switch(expression)case value1:statement1;break;/case value1:statement1;break;/分支分支1 1 case value2:statement2;break;/case value2:statement2;break;/分支分支2 2 .case valueN:stateme
44、ntN;break;/case valueN:statementN;break;/分支分支n n default:default:缺省语句块缺省语句块;/;/分支分支n+1,n+1,其它其它 2 2多分支语句多分支语句switch switch 说明说明 表达式的值只能是表达式的值只能是整型或字符型整型或字符型,同时要与,同时要与casecase分分支的判断值的类型一致。计算出表达式的值后,它支的判断值的类型一致。计算出表达式的值后,它首先与第一个首先与第一个casecase分支进行比较,若相同,执行第分支进行比较,若相同,执行第一个一个casecase分支的语句块;否则再检查第二个分分支的语
45、句块;否则再检查第二个分之之,依次类推。依次类推。casecase子句中的值子句中的值valueNvalueN必须是常量必须是常量,各个,各个casecase子句子句中的值不同。中的值不同。如果没有情况匹配,就执行如果没有情况匹配,就执行defaultdefault指定的语句指定的语句,但但defaultdefault子句本身是可选的。子句本身是可选的。breakbreak语句语句用来在执行完一个用来在执行完一个casecase分支后,使程序分支后,使程序跳出跳出switchswitch语句,即终止语句,即终止switchswitch语句的执行,否则,语句的执行,否则,找到一个匹配的情况后面所
46、有的语句都会被执行。找到一个匹配的情况后面所有的语句都会被执行。publicclassScorepublicstaticvoidmain(Stringargs)java.util.Scannerscan=newjava.util.Scanner(System.in);ints=scan.nextInt();intx=s/10;switch(x)case0:case1:case2:case3:case4:case5:System.out.println(不及格);break;case6:System.out.println(及格);break;case7:System.out.println(中
47、);break;case8:System.out.println(良);break;case9:case10:System.out.println(优);1.while1.while语句语句 whilewhile语句的一般形式是:语句的一般形式是:while(条件表达式条件表达式)循环体循环体 例例2-10 2-10 输入一行字符,统计数字字符、空格及其它字符的数量输入一行字符,统计数字字符、空格及其它字符的数量 class SwitchTest class SwitchTest public static void main(String args)public static void ma
48、in(String args)throws java.io.IOExceptionthrows java.io.IOException char c;char c;int numberOfDigits=0,numberOfSpaces=0,numberOfOthers=0;int numberOfDigits=0,numberOfSpaces=0,numberOfOthers=0;while while(c=(char)System.in.read()!=n)(c=(char)System.in.read()!=n)switch(c)switch(c)case 0:case 0:case 1:
49、case 1:case 2:case 2:case 3:case 3:case 4:case 4:case 5:case 5:case 6:case 6:case 7:case 7:case 8:case 8:例例2-10 2-10 续续 case 9:numberOfDigits+;break;case :numberOfSpaces+;break;default:numberOfOthers+;break;System.out.println(Number of digits=“+numberOfDigits+);System.out.println(Number of spaces=“+
50、numberOfSpaces+);System.out.println(Number of others=“+numberOfOthers+);观察运行结果,看输出是否与预想的一致观察运行结果,看输出是否与预想的一致例例2-11 2-11 在三位数中找出所有水仙花数,水仙花数的条在三位数中找出所有水仙花数,水仙花数的条件是该数等于其各位数字的立方和。件是该数等于其各位数字的立方和。public class Narcissus public class Narcissus public static void main(String arge)public static void main(St