JAVA语言基础(新书)课件_第1页
JAVA语言基础(新书)课件_第2页
JAVA语言基础(新书)课件_第3页
JAVA语言基础(新书)课件_第4页
JAVA语言基础(新书)课件_第5页
已阅读5页,还剩136页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 JavaJava编程基础编程基础 Java语言基础2【学习目标】1 1掌握掌握 Java Java 程序中的程序中的注释用法注释用法。 2 2掌握掌握 Java Java 的的命名规则命名规则,了解,了解 Java Java 的的标识符和系统保留字标识符和系统保留字。 3 3掌握掌握 Java Java 的的基本数据类型基本数据类型,了解常量、变量和,了解常量、变量和 Java Java 扩展的数据类扩展的数据类型。型。4 4掌握掌握 Java Java 语言语言基本运算符的使用基本运算符的使用,掌握,掌握 Java Java 语言基本运算符的语言基本运算符的优优先级。先级。 5

2、 5掌握掌握 Java Java 程序的程序的基本控制结构基本控制结构。 6 6掌握并运用掌握并运用数组数组。 Java语言基础32.1 2.1 数据类型、常量、变量数据类型、常量、变量 一、标识符一、标识符 标识符:能被编译器识别而提供的在程序中惟一的名字。在标识符:能被编译器识别而提供的在程序中惟一的名字。在JavaJava语言中用标语言中用标识符对变量、类、方法等进行命名。识符对变量、类、方法等进行命名。 对标识符的定义需要遵守以下的规则:对标识符的定义需要遵守以下的规则: 标识符是由字母、标识符是由字母、“_ _”、“$ $”和数字组成。和数字组成。标识符标识符以字母、以字母、“_ _

3、”、“$ $”开头开头。标识符标识符不能与关键字同名不能与关键字同名。标识符标识符区分大小写区分大小写。如:。如:sumsum和和SumSum是不同的标识符。是不同的标识符。例如:例如:nes_idnes_id,$fail$fail,_ese_ese为合法标识符。为合法标识符。nes-idnes-id,studstud* *,classclass为不合法为不合法标识符。标识符。 Java语言基础4二、关键字二、关键字 关键字:关键字:Java语言本身提供的一种特殊的标识符,又称语言本身提供的一种特殊的标识符,又称Java保保留字。留字。Java语言的关键字有语言的关键字有40多个多个.Java

4、语言基础5 三、数据类型三、数据类型JavaJava数据类型数据类型: :基本数据类型和复合数据类型。基本数据类型和复合数据类型。n 基本数据类型基本数据类型: :数值型数值型、字符型字符型和和布尔型布尔型;n 复合类型复合类型: : 类类和和接口接口类型。类型。 1 1数值型数据数值型数据整数整数类型、类型、浮点浮点类型。类型。Java语言基础6(1) 整数类型 JavaJava把整型数细分为把整型数细分为字节型、短整型、整型、长整型字节型、短整型、整型、长整型。它们的类型。它们的类型标识符、默认值、取值范围和所占字节如表标识符、默认值、取值范围和所占字节如表2-22-2所示:所示: 注意:

5、Java中所有整数类型都是有符号的,没有无符号的整数。 Java语言基础7 (2)浮点型 Java提供了两种浮点类型:单精度和双精度。它们的类型标识符、默认值、取值范围和所占字节如表2-3所示: 表2-3浮点数据分类 Java语言基础8 (3)字符类型 (4)布尔型Java语言基础9四、常量四、常量在在Java语言中的常量有:语言中的常量有:整型常量整型常量:十进制、八进制(以十进制、八进制(以0开头)、十六进制(开头)、十六进制(以以0 x或或0X开头开头)浮点常量浮点常量:小数形式和指数形式小数形式和指数形式字符常量:字符常量:单引号括起来的一个字符,区分大小写单引号括起来的一个字符,区分

6、大小写布尔常量:布尔常量:true 和和false字符串常量:字符串常量:双双引号括起来的一串字符,区分大小写引号括起来的一串字符,区分大小写程序中定义的常量(符号常量)程序中定义的常量(符号常量) Java语言基础10转义字符转义字符JavaJava语言还允许使用一种以语言还允许使用一种以“ ”开头的字符,我们称其为转义字符,开头的字符,我们称其为转义字符,用来表示一些不可显示的或有特殊意义的字符。用来表示一些不可显示的或有特殊意义的字符。Java语言基础11在在JavaJava程序中定义常量通过程序中定义常量通过finalfinal关键字实现,关键字实现,常量通常常量通常用大写字母表示用大

7、写字母表示。常量。常量声明赋值后声明赋值后,在,在程序中就不能再修改程序中就不能再修改,否则将会产生编译错误。否则将会产生编译错误。定义语句格式如下:定义语句格式如下: final final 类型标识符类型标识符 常量名常量名 常量值;常量值; 例如:例如: final int N 100;final int N 100;程序中定义的常量(符号常量)程序中定义的常量(符号常量)Java语言基础12五、变量五、变量1.1.变量定义变量定义Java语言规定,程序中的变量语言规定,程序中的变量必须先定义、后使用必须先定义、后使用.定义定义变量语句的一般格式如下:变量语句的一般格式如下: 数据类型数

8、据类型 变量列表;变量列表;给变量给变量赋值赋值语句的一般格式为:语句的一般格式为: 变量名变量名= =表达式;表达式; Java语言基础13例例2.1给变量赋值的演示给变量赋值的演示public class j202public static void main(String arg)int a,b; /定义变量定义变量a,b为整型变量为整型变量a=1; /给变量给变量a赋初值赋初值System.out.println(a=+a); a=a+1; System.out.println(a=+a);b=a+1; System.out.println(b=+b);a=b+2; System.ou

9、t.println(a=+a);Java语言基础143 3变量初始化变量初始化例例2.2给变量赋值给变量赋值public class j203public static void main(String arg)byte a=0 x78; /定义十六进制字节型变量定义十六进制字节型变量int b=3; /定义变量定义变量b为整型变量为整型变量float c=1.23f; /定义变量定义变量c为单精度变量为单精度变量double d=3.23; /定义变量定义变量d为双精度变量为双精度变量boolean e=false; /定义变量定义变量e为布尔型变量为布尔型变量char f=A; /定义变量

10、定义变量f为字符型变量为字符型变量System.out.println(转换成十进制的转换成十进制的a=+a); /120System.out.println(b=+b); /3System.out.println(c=+c); /1.23System.out.println(d=+d); /3.23System.out.println(e=+e); /falseSystem.out.println(f=+f);/AJava语言基础152.2 运算符与表达式运算符与表达式nJava语言运算符是一种特殊字符,他指明用户语言运算符是一种特殊字符,他指明用户对操作数进行的某种操作。对操作数进行的某种

11、操作。n表达式是由常量、变量、方法调用以及一个或表达式是由常量、变量、方法调用以及一个或多个运算符按一定规则的组合,它用于计算或多个运算符按一定规则的组合,它用于计算或对变量进行赋值。对变量进行赋值。 Java语言基础162.2.12.2.1算术运算符与算术表达式算术运算符与算术表达式 Java语言基础17说明说明 (1)(1)“+ +”运算符可以用来运算符可以用来连接字符串连接字符串;例如:;例如:String salutation=Dr.;String salutation=Dr.;String name=Jack;String name=Jack;String title=salutat

12、ion+name;String title=salutation+name;则则titletitle值为值为“Dr. JackDr. Jack”。(2)(2)“/ /”运算符。两个整数相除的结果是整数,如果有一个操运算符。两个整数相除的结果是整数,如果有一个操作数为小数则结果为小数。例如作数为小数则结果为小数。例如5/2=25/2=2;5.0/2=2.55.0/2=2.5。(3 3)“% %”运算符。运算符。JavaJava中的取模运算符与中的取模运算符与C C和和C+C+不同,它的不同,它的操作数可以是浮点数。例如操作数可以是浮点数。例如-3.5%3=-0.5-3.5%3=-0.5,3.5%

13、-3=0.53.5%-3=0.5。Java语言基础18(4 4)+(-)运算符的)运算符的操作数必须是变量操作数必须是变量,不能是常量和,不能是常量和表达式。它们可以放在变量前,也可以放在变量后,功能都表达式。它们可以放在变量前,也可以放在变量后,功能都是对变量增(减)是对变量增(减)1 1。但从表达式的角度看,表达式的值是。但从表达式的角度看,表达式的值是不同的不同的. .例如:例如:k=a+k=a+;等价于;等价于k=a; a=a+1; k=a; a=a+1; 如如a=5a=5,则,则k=5k=5,a=6a=6;k=+a; k=+a; 等价于等价于a=a+1; k=a; a=a+1; k=

14、a; 如如a=5a=5,则,则k=6k=6,a=6a=6;Java语言基础19例例24算术运算算术运算public class j204public static void main(String arg)int a=3,b=5,c=5;System.out.println(初值初值a=3,b=5,c=5);System.out.println(b/a=+b/a); System.out.println(c%a=+c%a); System.out.println(-a=+(-a); System.out.println(b+=+(b+)+,+b=+b);System.out.println(+

15、c=+(+c)+,+c=+c); Java语言基础202.2.2 关系运算符与关系表达式关系运算符与关系表达式1 1关系运算符组成关系运算符组成JavaJava语言提供了语言提供了6 6种关系运算符种关系运算符 、=、 、=7107的值为的值为truetrue,1010!=10=10的值为的值为false false Java语言基础212.2.32.2.3逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式逻辑运算与关系运算的关系十分密切,关系运算的运算结果逻辑运算与关系运算的关系十分密切,关系运算的运算结果是布尔型的运算,而逻辑运算的操作数和运算结果都是布尔是布尔型的运算,而逻辑运算的操作数和运算

16、结果都是布尔型的运算。型的运算。逻辑运算符逻辑运算符: :n! !(非)(非)n&(简洁与):逻辑与(简洁与):逻辑与n|(简洁或):逻辑或(简洁或):逻辑或n& &(非简洁与)(非简洁与):按位与按位与n| |(非简洁或):按位或(非简洁或):按位或n (异或)(异或) 其中!是单目运算符。其中!是单目运算符。 Java语言基础22例例2.5逻辑运算逻辑运算public class j205public static void main(String arg)int x=1,y=2;int num1=5,num2=5,num3=5,num4=5;boolean r1,

17、r2,r3,r4;r1=xy & num1+=5; /两边表达式都运算两边表达式都运算r2=xy & num2+=5; /只运算左边表达式只运算左边表达式r3=xy | num3+=5; /两边表达式都运算两边表达式都运算r4=xb : + (a b); System.out.println(a=b : + (a = b); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f); System.out.println(!f : + (!f); System.out.print

18、ln(tf : + (t f); System.out.println(t&f : + (t & f); System.out.println(t|f : + (t | f); Java语言基础242.2.4 赋值运算符赋值运算符n赋值运算符的作用是将运算符赋值运算符的作用是将运算符“= =”右侧表达式的值右侧表达式的值赋给左侧的变量。赋给左侧的变量。n另外另外“= =”和其它运算符组合产生了扩展赋值运算符。和其它运算符组合产生了扩展赋值运算符。 a+=2 a+=2 等价于等价于a=a+2a=a+2。 Java语言基础252.2.5 条件运算符条件运算符 条件运算符条件运算符“

19、?”“?”是三目运算符,其格式为:是三目运算符,其格式为:表达式?语句表达式?语句1 1:语句:语句2 2; 其中表达式的值是布尔类型,当表达式的值为其中表达式的值是布尔类型,当表达式的值为truetrue时执行语句时执行语句1 1,否则执行语句,否则执行语句2 2。要求语句。要求语句1 1和语和语句句2 2 返回的数据类型必须相同,并且不能无返回值。返回的数据类型必须相同,并且不能无返回值。Java语言基础26例例2.6 比较三个数的大小,求出其中的最大值和最小值比较三个数的大小,求出其中的最大值和最小值public class j206public static void main(Str

20、ing arg)int a=12,b=-23,c=34;int max,min,t; /求三个数中的最大值求三个数中的最大值t=ab?a:b; max=tc?t:c;/求三个数中最小值求三个数中最小值t=ab?a:b;min=tc?t:c;/显示结果显示结果System.out.println(max=+max);System.out.println(min=+min);Java语言基础272.2.6 运算符优先级运算符优先级28n位运算符位运算符n按位取反按位取反 “op2”n按位与按位与 & “op1 & op2” n按位或按位或 | “op1 | op2”n按位异或按位异

21、或 “op1 op2”通常通常: 操作数为整数操作数为整数运算符 (operator)29n采用补码表示二进制数采用补码表示二进制数n最高位是符号位最高位是符号位n正数的符号位是正数的符号位是0,例,十进制例,十进制42的补码为的补码为00101010n负数的符号位是负数的符号位是1该负数绝对值的补码按位取反,然后加该负数绝对值的补码按位取反,然后加1,为该负,为该负数的补码数的补码例,十进制例,十进制-42的补码的补码负数的绝对值负数的绝对值42 绝对值的补码绝对值的补码00101010 按位取反按位取反11010101 加加1得得11010110补码30对操作数的每一个二进制位进行“取反”

22、操作nbyte a = 42;nbyte aa = a;nSystem.out.println(“aa=” + aa);42 00101010 /a a-43 11010101 /原码为10101011=-43按位取反按位取反 “op2”31将操作数的对应位逐位进行位逻辑与运算将操作数的对应位逐位进行位逻辑与运算1 & 1 1,其余为,其余为0用途用途n取某一整数中指定的几个二进制位取某一整数中指定的几个二进制位42 & 15 00101010 & 00001111 00001010 取后四位取后四位按位与 & “op1 & op2”32n用途用途n将某

23、一整数的某一或几位清将某一整数的某一或几位清043 & 1 00101011 & 11111110 00101010按位与 & “op1 & op2”33将操作数的对应位逐位进行位逻辑或运算将操作数的对应位逐位进行位逻辑或运算有有1 1,其余为,其余为042 | 15 00101010 | 00001111 00101111用途用途: 将一个整数的某一位或几位置将一个整数的某一位或几位置1按位或 | “op1 | op2”34将操作数的对应位逐位进行位异或运算将操作数的对应位逐位进行位异或运算对应位不同对应位不同1,其余为,其余为042 15 00101010

24、00001111 00100101用途用途: 将一个整数的某一位或几位取反将一个整数的某一位或几位取反按位异或 “op1 op2”35n移位运算符移位运算符(Shift Operators)n左移左移 “op1 “op1 op2”1.无符号右移无符号右移 “op1 op2”运算符 (operator)36n将操作数将操作数op1的二进制位向左移的二进制位向左移op2(正整数正整数)位位n低位补零低位补零 例:例: int a = 42; int aa = a 2; System.out.println(“aa=” + aa);分析:分析:42= 00101010B 42 2 10101000

25、相当于相当于 42*22 = 168运算速度比乘法快运算速度比乘法快注意注意: 溢出溢出左移 “op1 2; System.out.println(“aa=” + aa);分析:分析: -42 = (10101010)原原=(11010110)补补 -42 2 11110101 /(10001011)原原=-11 相当于相当于 -42/22 = -10.5 运算速度比除法快运算速度比除法快右移 “op1 op2”38n将操作数将操作数op1的二进制位向右移的二进制位向右移op2(正整数正整数)位位n高位补零高位补零,零扩展,零扩展(zero-extension)例:例: int a = -42

26、; int aa = a 2; System.out.println(“aa=” + aa);分析:分析: -42 = (10101010)原原=(11010110)补补 -422 00110101 /32+16+4+1=53实现数的拼接实现数的拼接无符号右移 “op1 op2”总结n算术右移算术右移,符号位复制符号位复制,为正数时左边补为正数时左边补0,为负数时左边为负数时左边补补1. 右边舍弃。右边舍弃。n逻辑右移逻辑右移,这个才是和这个才是和和和是一样的;对于负数是一样的;对于负数,逻逻辑右移之后就变成正数了辑右移之后就变成正数了. 练习练习 位运算符位运算符public class B

27、itOpDemo public static void main(String args) int a = 0 xB5; /a=10110101B int b = 0 xA3;/b=10100011B System.out.println(a = + Integer.toBinaryString (a); System.out.println(b = + Integer.toBinaryString (b); System.out.println(a = + Integer.toBinaryString (a); System.out.println(a&b = + Integer.t

28、oBinaryString (a & b); System.out.println(a|b = + Integer.toBinaryString (a | b); System.out.println(ab = + Integer.toBinaryString (a b); System.out.println(a3 = + Integer.toBinaryString (a 3 = + Integer.toBinaryString (a 3); System.out.println(a3 = + Integer.toBinaryString (a 3); 运行结果Java语言基础42

29、2.3 Java2.3 Java程序的流程控制程序的流程控制n2.3.1 顺序结构顺序结构n2.3.2 选择结构选择结构n2.3.3 循环结构循环结构Reader常用子类常用子类nBufferedReadern构造一个字符流的缓存构造一个字符流的缓存,里面,里面存放存放的是从控制台输入的字节转换成的是从控制台输入的字节转换成的的字符,字符,从而实现字符、数组和行的高效读取。从而实现字符、数组和行的高效读取。n可以指定缓冲区的大小可以指定缓冲区的大小nInputStreamReadern字节流通向字符流的桥梁字节流通向字符流的桥梁:它使用指定的:它使用指定的 charsetcharset 读取字

30、节并读取字节并将其解码为字符。将其解码为字符。 n每次每次调用调用 InputStreamReaderInputStreamReader的的read() read() 方法都会导致从底层输入方法都会导致从底层输入流读取一个或多个字节。流读取一个或多个字节。 buf=new BufferedReader(new InputStreamReader(System.in);Java语言基础44例例2.7输入一个数,求其平方根输入一个数,求其平方根import java.io.*;public class j207 public static void main(String arg) throws

31、IOException int x; double y; String str; /声明字符串类声明字符串类 BufferedReader buf; /声明缓冲数据流类声明缓冲数据流类 System.out.print(请输入一个数请输入一个数:); buf=new BufferedReader(new InputStreamReader(System.in); str=buf.readLine(); x=Integer.parseInt(str);/返回由字符串转换得到的整数返回由字符串转换得到的整数 y=Math.sqrt(x); /求平方根求平方根 System.out.println(

32、x+的平方根为:的平方根为:+y); /显示计算结果显示计算结果 Java语言基础45例例2.8输入一个数,求其输入一个数,求其平方根平方根import java.io.*;public class j208 public static void main(String arg) throws IOException int x; double y; String str; BufferedReader buf; System.out.print(请输入请输入一个数一个数:); buf=new BufferedReader(new InputStreamReader(System.in); s

33、tr=buf.readLine(); x=Integer.parseInt(str); if (x=0) y=Math.sqrt(x); System.out.println(x+的的平方根为:平方根为:+y); Java语言基础46例例29输入一个数,求其平方根输入一个数,求其平方根import java.io.*;public class j209public static void main(String arg) throws IOExceptionint x;double y;String str; BufferedReader buf; System.out.print(请输入一个

34、请输入一个数数:);buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine();x=Integer.parseInt(str);if (x=0) y=Math.sqrt(x); System.out.println(x+的平方的平方根为:根为:+y); else System.out.println(输入错误!输入错误!);Java语言基础47例例2.10 2.10 编写程序,输入一个成绩,输出成绩的等级。等编写程序,输入一个成绩,输出成绩的等级。等级划分标准:级划分标准:8585分以上为优,分以上为优,

35、75758484为良,为良,60607474为中,为中,6060分以下为不及格分以下为不及格import java.io.*;public class j210public static void main(String arg) throws IOExceptionint x;String str; BufferedReader buf; System.out.print(请输入学生请输入学生成绩(成绩(0-100)之间:)之间:);buf=new BufferedReader(new InputStreamReader(System.in);str=buf.readLine(); x=In

36、teger.parseInt(str);if(x=85)System.out.println(成绩优秀!成绩优秀!);else if(x=75)System.out.println(成绩良好!成绩良好!);else if(x60)System.out.println(成绩及格!成绩及格!);else System.out.println(成绩不及格!成绩不及格!);Java语言基础48例例2.112.11输入成绩的英文等级:输入成绩的英文等级:A A、B B、C C、D D,输出对应的,输出对应的中文等级:优秀、良好、及格、不及格中文等级:优秀、良好、及格、不及格 import java.io

37、.*;public class j211public static void main(String arg) throws IOException char ch;System.out.print(请输入英文请输入英文等级(等级(A,B,C,D):);/接受从键盘上输入的一个数据接受从键盘上输入的一个数据把它转换成一个字符把它转换成一个字符ch=(char)System.in.read(); switch(ch) case A:case a: System.out.println(成成绩优秀!绩优秀!); break;case B:case b: System.out.println(成成绩

38、良好!绩良好!);break;case C:case c: System.out.println(成成绩及格!绩及格!);break;case D:case d: System.out.println(成成绩不及格!绩不及格!);break;default:System.out.println(输输入错误!入错误!);Java语言基础49例例2.12 用户从键盘输入字符,直到输入用户从键盘输入字符,直到输入&程序结束。要求:输入程序结束。要求:输入字符后显示输入字符的字符后显示输入字符的ASCII值并最终统计出输入字符的个数值并最终统计出输入字符的个数 import java.io.*

39、;public class j212public static void main(String arg) throws IOExceptionchar ch;int count=0; System.out.println(请输入一个字符,以请输入一个字符,以&结束输入:结束输入:);ch=(char)System.in.read(); while(ch!=&) System.out.println(字符字符+ch+的的ASCII值为值为:+(int)ch); System.in.skip(2); count=count+1; ch=(char)System.in.read()

40、; System.out.println(输入的字符共输入的字符共+count); nSystem.in.skip(2);当用户键入字母,按当用户键入字母,按Enter 键后,虽然屏幕只显示了一个字母,但是在系统内存键后,虽然屏幕只显示了一个字母,但是在系统内存中实际保存了中实际保存了3个个ASCII码。码。第一个第一个ASCII码是用户键入的字母的码是用户键入的字母的ASCII码,码,第二个是回车的第二个是回车的ASCII码码 13,第三个是换行的第三个是换行的ASCII码码 10。在这种情况下,在这种情况下,System.in.read(); 语句会在第二、三轮循环时分别读取内存中语句会在

41、第二、三轮循环时分别读取内存中的的ASCII 码码 13和和 10,而不会要求用户键入新的字母。只有在第四轮循环时,因,而不会要求用户键入新的字母。只有在第四轮循环时,因为内存中的内容已经全部读取完,才会要求用户键入新的字母。为内存中的内容已经全部读取完,才会要求用户键入新的字母。 Java语言基础52例例2.132.13对例对例2.122.12进行改编,用进行改编,用do-whiledo-while语句实现语句实现import java.io.*;public class j213public static void main(String arg) throws IOExceptionch

42、ar ch;int count=0; System.out.println(请输入字符,以请输入字符,以#结束输入:结束输入:);doch=(char)System.in.read(); System.out.println(字符字符+ch+的的ASCII值为值为:+(int)ch); count=count+1; while(ch!=#) ;System.out.println(输入的字符共:输入的字符共:+count); Java语言基础54/*方法方法3*/i=1;sum=0; /赋初值赋初值for (;) sum=sum+i; /求累加和求累加和if (i=100) break; /退

43、出循环条件退出循环条件i+; /加数自加加数自加System.out.println(1+2+.+100=+sum); Java语言基础55 例例2.14计算计算1+2+3+100的值的值 public class j214public static void main(String arg)int i,sum; /定义变量定义变量/*方法方法1*/sum=0; /给存放累加和的变量赋初值给存放累加和的变量赋初值0for (i=1;i=100;i+) /求累加和的循环开始求累加和的循环开始sum=sum+i; /求累加和求累加和System.out.println(1+2+.+100=+sum

44、);/*方法方法2*/for (sum=0,i=1;i=100;sum=sum+i,i+); /循环语句循环语句System.out.println(1+2+.+100=+sum);Java语言基础56 例例2.152.15求求1-10001-1000之间的所有完全数之间的所有完全数 public class j215public static void main(String arg)int i,j,sum; /定义变量定义变量for(i=1;i1000;i+) sum=0;for(j=1;ji;j+) if(i%j=0) sum=sum+j; /因子累加因子累加if(sum=i) /判定是

45、否为完全数判定是否为完全数System.out.print(i+t);System.out.println();57跳转语句nbreak语句nbreak语句用以中断当前执行的循环语句(for、do-while、while)或switch语句n两种形式n不带标号的break语句n表达形式: break;n从本层循环中跳出n带标号的break语句n表达形式:n从整个程序块中跳出标号: 程序块 (break 标号;)若只有一层循环,带标号和不带标号作用相同若存在循环嵌套,两者作用不同Java语言基础58例例2.16计算计算 3 的的 60 次方。次方。 public class Example2_1

46、6 public static void main(String args) int i,n=60; long result=1; for(i=1;i=Integer.MAX_VALUE) break; if (i= =n+1) System.out.println(3 的的+n +次方为:次方为:+ result); ElseSystem.out.println(超出了整数范围超出了整数范围); 超出了整数范围超出了整数范围59n带标号的break语句class Test public static void main(String args) int j, k; Rep: for (j =

47、 8; j 1; j-) for (k=1; k=9; k+) if (k =5) break; if (j=6) break Rep;System.out.print(j*k+“ ”); System.out.println(“”); 跳转语句8 16 24 32 7 14 21 28 若只有一层循环,带标号和不带标号作用相同若存在循环嵌套,两者作用不同60跳转语句ncontinue语句ncontinue语句用以结束循环语句(for、do-while、while)的本次循环n两种形式n不带标号的continue语句n表达形式: continue;n结束本次循环,即跳过continue语句后的

48、语句,返回至本层循环体的条件测试部分n带标号的continue语句n表达形式:n跳至标号所指语句块的条件测试部分继续执行n注意与break语句的比较标号: 程序块 (continue 标号;)若只有一层循环,带标号和不带标号作用相同若存在循环嵌套,两者作用不同Java语言基础61例例2.17求自然数求自然数 1 至至 99 中所有奇数的和。中所有奇数的和。 public class Example217 public static void main(String args) int sum=0,i; for (i=1;i=99;+i) if (i%2=0) continue; sum +=i

49、; System.out.println(sum); 2500Java语言基础62例例2.18 2.18 输出输出 200 200 以内的所有素数的程序就使用了带标以内的所有素数的程序就使用了带标号的号的 continue continue 语句语句: import java.io.*;public class Sushu public static void main ( String args ) A1: for( int i = 2; i = 200; i+ ) for( int j = 2; j i; j+) if ( i % j = 0) continue A1; System.ou

50、t.print( i + ); 课堂练习课堂练习1:1:写出程序的运行结果写出程序的运行结果import java.io.IOException;public class Test public static void main(String args) throws IOException System.out.println(please enter number); int b = 0; while (true) b = System.in.read(); if (b = n | b = r) break; else int num = b - 0; System.out.println

51、(num); n输入:输入:123 n输出:输出:Java语言基础64课堂练习课堂练习2:求求2100的素数,每行打印的素数,每行打印5个数字个数字import java.io.*;public class prime public static void main(String args) First_Loop: for(int i=2,k=0;i100;i+) for(int j=2;j=Math.sqrt(i);j+) if(i%j=0) continue First_Loop; System.out.print(i+t);k+;if(k%5=0) System.out.println(

52、); /for /main /classJava语言基础652.4 数组数组2.4.1什么是数组 数组是一组类型相同、名字相同的数据的总称,数组中的每个数据称为一个数组元素。 Java语言基础662.4.2 一维数组一维数组在在JavaJava语言中,使用数组一般步骤:语言中,使用数组一般步骤: 数组定义、分配内存、赋值。数组定义、分配内存、赋值。1 1定义数组定义数组形式有两种:形式有两种: 数组元素类型数组元素类型 数组名数组名 ; 数组元素类型数组元素类型 数组名;数组名;例如:例如:int student; int student; 注意注意:n类型是数组中元素的数据类型类型是数组中元

53、素的数据类型(基本和构造类型基本和构造类型)n数组名是一个标识符数组名是一个标识符n数组声明后不能被访问,因未为数组元素分配内存空数组声明后不能被访问,因未为数组元素分配内存空间间variable d might not have been initializedSystem.out.println(d0); 1 errordouble d;System.out.println(d0);Java语言基础672 2用用newnew初始化数组初始化数组 用关键字new初始化数组:指定数组的长度并分配相应的内存空间。例如: int a; a = new int50; 定义数组和动态初始化数组也可以合

54、并为一条语句,例如: int a = new int50; String name = new String30; 在动态初始化数组后,数组的默认值由其元素的类型决定。在动态初始化数组后,数组的默认值由其元素的类型决定。例如:整型数据的默认值为例如:整型数据的默认值为0 0,实型数据的默认值为,实型数据的默认值为0.00.0, 布尔型数据的默认值为布尔型数据的默认值为false false Java语言基础683 3赋初值初始化数组赋初值初始化数组赋初值初始化数组是指不使用系统的数组默认值,自行给数组赋初值。赋初值初始化数组是指不使用系统的数组默认值,自行给数组赋初值。具体实施方法:具体实施方

55、法:(1)按照顺序依次给每个元素赋值。)按照顺序依次给每个元素赋值。例如给数组例如给数组a赋值:赋值:a0 = 81;a1 = 90;a49 = 100;(2)在定义数组的同时直接给数组赋初值。)在定义数组的同时直接给数组赋初值。int b = 81,90,17,55,32, 98,37,25,100 ;String nums = one,two,three,four,five,six,seven,eight ; 初值数据的个数就是数组的长度,数据与数据之间用逗号分隔,整初值数据的个数就是数组的长度,数据与数据之间用逗号分隔,整 个初值再用大括号括起来。个初值再用大括号括起来。Java语言基础

56、694数组元素的引用数组名数组名 下标下标 下标值由0开始到数组长度减1为止。 a50:a0表示数组中的第一个元素;a49表示数组中的最后一个元素。 Java语言基础705数组的复制 每个数组都是每个数组都是ArrayArray类中的一个对象,在复制数组时有两类中的一个对象,在复制数组时有两种具体情况。种具体情况。 (1)两个数组指向同一组元素空间。 例如例如: int num_1 = 1, 2, 3, 4, 5, 6; int num_2; num_2 = num_1; Java语言基础71(2 2)两个数组指向内容相同的两个元素空间)两个数组指向内容相同的两个元素空间。 如果要真正复制一个

57、数组,使我们在修改复制数组时不影响源数组的话,就需要定义一个和源数组长度相同的数组,然后再把源数组中的元素一一复制给新的数组。n求任何数组的长度都可以使用求任何数组的长度都可以使用length方法:方法: 数组名数组名.length 如:如:num_1.length、 a.length等等 72一维数组n数组整体赋值class Test public static void main(String args) int a = 2, 4, 6, 8;int b; int c = 1, 3, 5, 7;b = a; c = a;for (int j = 0; j a.length; j+)Syst

58、em.out.print(aj + “ “);System.out.println();for (int j = 0; j b.length; j+)System.out.print(bj + “ “) ;System.out.println();for (int j = 0; j java Test2 4 6 82 4 6 82 4 6 8C:int a = 2, 4, 6, 8, 0; int b; int c = 1, 3, 5, 7;int a = 2, 4, 6, 8; int b; int c = 1, 3, 5, 7, 9;Java语言基础73例例2.19 一维数组的构建与输出一

59、维数组的构建与输出,并求数组平均值并求数组平均值class Array1creatpublic static void main(String args)int num1=1,2,3,4,5,6;int num2;int j;float ave=0f;System.out.println(数组数组num1各元素的值为:各元素的值为:);for(j=0; j num1.length ; j+)System.out.print(num1 j+t);System.out.println();System.out.println(数组数组num1的长度为:的长度为:+ num1.length);Jav

60、a语言基础74num2=num1;System.out.println(数组数组num2各元素的值为:各元素的值为:);for(j=0; j num2.length ; j+)System.out.print(num2 j+t);ave = ave + num2 j;System.out.println();ave = ave / num2.length;System.out.println(数组数组num2的平均值为:的平均值为:+ ave); Java语言基础752.4.3 2.4.3 二维数组二维数组 1二维数组定义与定义一维数组类似,定义二维数组也有两种形式: (1)数组元素类型)数组元素类型 数组名数组名;例如:intnum;charcc;(2)数组元素类型)数组元素类型 数组名数组名 ;例如:Stringss;Doublevalue; 二维数组可以看作一个按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论