版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第程序设计基础知识第程序设计基础知识第程序设计基础知识第2章程序设计基础知识
教学目标:通过本章的学习,了解Java程序设计相关的基本概念,掌握Java标识符、关键字、数据类型、运算符与表达式、字符串与数组以及流程控制等编程基础知识,为后续章节学习编程作准备。//成绩查询模块publicstaticvoidcjcx()throwsIOException {…}//成绩排序模块publicstaticvoidcjpx() {… }在上面的案例框架中应用到了如下几个知识点。(1)输入与输出操作;(2)分支与循环流程控制;(3)数组的定义与操作数组元素。2.1标识符与关键字2.1.1标识符在Java程序设计语言中,用来标识变量、类、方法的名字称为标识符。合法的标识符是由字母、下划线或$符号开始的字符串,例如:studentId、studentName、student_name、_score_1、$usadollar需要注意的是,Java标识符区分大小写。2.1.2关键字在Java语言中,有一些被定义为特定意义或操作的字符串,这些字符串称为关键字或保留字。abstractBooleanbreakbytecasecatchcharclasscontinuedefaultdodoubleelseextendsfalsefinalfinallyfloatforifimplementsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttruetryvoidvolatilewhileJava关键字表2.2变量和数据类型2.2.1常量与变量1.常量常量是指在程序执行过程中始终保持不变的量,根据数据类型的不同,常量有整型、浮点型、字符型、字符串型、布尔型等几种。2.变量变量是在程序运行过程中可以变化的量。变量有变量名、变量的值、变量的类型以及变量的作用域等4个属性。2.2.2数据类型1.基本数据类型1)基本数据类型介绍Java语言定义了8种基本数据类型,这8种基本数据类型又可以归为以下4类:逻辑类型(boolean)、字符类型(char)、整数类型(byte、short、int、long)、浮点类型(double、float)。(1)逻辑类型。逻辑类型用boolean来表示,其取值只有两个:true和false。booleantruth=true;(2)字符类型。字符类型分字符类型(char)和字符串类型(String)。①字符类型(char)。char字符必须用单引号''括起来。例如:'a' 字母a‘\r’ 转义字符,表示回车②字符串类型。字符串用String来表示,String字符串必须用双引号“”括起来。Stringgreeting="HappyNewyear!!";(3)整数类型(byte、short、int、long)。
整型数据的取值范围
数据类型长度(bits)表示数值范围举例(说明)byte8-27~27-1100(十进制数100)short16-215~215
-1256(十进制数256)int32-231~231
-10127(八进制数127)long64-263~263
-10x1AL(十六进制长整型数1A)(4)浮点类型(double、float)。为了提高数据的表示精度,可以采用浮点类型,浮点类型包括两种:单精度(float)和双精度(double)。双精度为默认浮点数类型。数据类型长度(bits)表示数值范围举例(说明)float32±1.4E-45~±3.4E383.14F(十进制数3.14)double64±4.9E-324~±1.798E3083.14E-10D(科学计数表示的双精度浮点数)3)基本数据类型的转换Java数据类型转换分为两种情形:一是自动类型转换;二是强制类型转换。(1)自动类型转换。原类型允许自动转换的目标类型byteshort、int、long、float、doubleshortint、long、float、doublecharint、long、float、doubleintlong、float、doublelongfloat、doublefloatdoubledouble无boolean无(2)强制类型转换。强制类型转换也叫显性转换,转换语句的格式如下:(<data_type>)表达式2.类数据类型类数据类型(引用数据类型)是比简单数据类型更为复杂的类型,包含编程者自己声明的所有类型,一般用于创建对象。2.3运算符与表达式2.3.1运算符Java运算符有如下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符。1.算术运算符算术运算符分为一元算术运算符和二元算术运算符,一元算术运算符的优先级较二元算术运算符的高。算术运算符
类别运算符用法描述一元运算符++opt1++,++opt2自加1--opt1--,--opt2自减1++opt1正值--opt1负值二元运算符*opt1*opt2乘法/opt1/opt2除法%opt1%opt2取余+opt1+opt2加法-opt1-opt2减法publicclassMath{publicstaticvoidmain(Stringargs[]){ inta=127,b=9; floatc=12.0f; inti=10,j=20; floatx; System.out.println("a="+a+",b="+b+",c="+c); System.out.println("i="+i+",j="+j+"\n"); System.out.println("i++="+(i++)+",i="+i); System.out.println("--j="+(--j)+",j="+j); x=a%c; System.out.println("a%c="+x); System.out.println("-b="+(-b)); }}程序的运行结果如下。a=127,b=9,c=12.0i=10,j=20i++=10,i=11--j=19,j=19a%c=7.0-b=-92.关系运算符关系运算符用于比较两个操作数之间的关系,结果为逻辑类型:true或false。关系运算符类别运算符用法描述二元运算符<opt1<opt2小于>opt1>opt2大于<=opt1<=opt2小于等于>=opt1>=opt2大于等于==opt1==opt2等于!=opt1!=opt2不等于3.逻辑运算符
类别运算符用法描述一元运算符!!opt1非二元运算符&&opt1&&opt2与||opt1||opt2或4.位运算符
类别运算符用法描述一元运算符~~opt1按位取反二元运算符<<opt1<<opt2opt1左移opt2位>>opt1>>opt2opt1右移opt2位>>>opt1>>>opt2opt1无符号右移opt2位&opt1&opt2按位与^opt1^opt2按位异或|opt1|opt2按位或条件运算符条件运算符“?:”的作用是条件判断,相当于一个if-else语句。条件运算符为三元运算符。其一般形式为:<boolean_expr>?<expr1>:<expr2><boolean_expr>为条件表达式,为真值,则取表达式1作为运算结果值,否则取表达式2为运算结果值。2.3.2表达式表达式是由一系列的常量、变量、方法调用、运算符组合而成的语句。2.4.1字符串Java语言提供了两个类来处理字符串,一个是String类,另一个是StringBuffer类,它们属于Java.lang包。(1)
String类提供的部分构造方法。①String():初始化一个新创建的String对象,它表示一个空字符序列。②String(byte[]bytes):构造一个新的String,方法是使用平台的默认字符集解码字节的指定数组。③String(char[]value,intoffset,intcount):分配一个新的String,它包含来自该字符数组参数的一个子数组的字符。2.4字符串与输入/输出(2)
String类提供的部分成员方法。①intcompareTo(StringanotherString):按字典顺序比较两个字符串。②intcompareToIgnoreCase(Stringstr):不考虑大小写,按字典顺序比较两个字符串。③Stringconcat(Stringstr):将指定字符串联到此字符串的结尾。④booleancontains(CharSequences):当且仅当此字符串包含char值的指定序列时,才返回true。⑤booleanequalsIgnoreCase(StringanotherString):将此String与另一个String进行比较,不考虑大小写。⑥intlength():返回此字符串的长度。⑦StringtoLowerCase():使用默认语言环境的规则将此String中的所有字符都转换为小写。⑧StringtoUpperCase():使用默认语言环境的规则将此String中的所有字符都转换为大写。⑨StringtoString():返回此对象本身(它已经是一个字符串!)。⑩Stringtrim():返回字符串的副本,忽略前导空白和尾部空白。publicclassString_1{publicstaticvoidmain(Stringargs[]) { Stringstra=newString("HELLOJAVA!"); System.out.println(stra); System.out.println("lengthofstrais:"+stra.length()); System.out.println("Lowerofstrais:"+stra.toLowerCase()); }}2.4.2输入输出操作1.数据的输入ScannerScanner是SDK1.5新增的一个类,该类在java.util包中,可以使用该类创建一个对象。Scannerreader=newScanner(System.in);然后借助reader对象可实现读入各种类型数据。读入方法为:nextInt():读入一个整型数据。nextFloat():读入一个单精度浮点数。nextLine():读入一个字符串。importjava.util.*;publicclassInput_1{
publicstaticvoidmain(String[]args) {intx,y;System.out.print("请输入两个整数:");Scannerreader=newScanner(System.in);x=reader.nextInt();y=reader.nextInt();System.
out.print("和为:"+(x+y)); }}2.对话框方式实现输入和输出Java通过javax.swing.JOptionPane类可以方便地实现向用户发出输入或输出消息。JOptionPane类提供了几个主要的输入、输出方法如下。(1)方法showConfirmDialog():用于询问一个确认问题,如yes/no/cancel。(2)方法showInputDialog():用于提示要求某些输入。(3)方法showMessageDialog():告知用户某事已发生。(4)方法showOptionDialog():上述三项的大统一。2.5.1分支语句Java分支语句有两重分支和多重分支两种。两重分支即if-else语句,多重分支即switch语句。1.if-else语句if-else语句的基本语法:if(<布尔表达式>){<语句块1>}[else{<语句块2>}]2.5流程控制语句
if-else的使用举例。publicclassIfElse{publicstaticvoidmain(Stringargs[]){ doublea=Math.random()*100; System.out.println("a="+a); if(a>50){ System.out.println("a>50!");//输出a>50 } else{ System.out.println("a<=50!");//输出a<=50 } }}2.switch语句switch语句的基本语法:switch(<表达式>){case<常数1>:<语句块1>[break;]case<常数2>:<语句块2>[break;]……default:<语句块n>[break;]}switch语句的基本流程如图2.5.2循环语句1.for循环for循环的语法:for(<初始表达式>;<条件判断表达>;<修改条件表达式>){<语句或语句块>;}for循环的基本流程如图
用for循环打印“九九”乘法表。publicclassMath3{publicstaticvoidmain(Stringargs[]){ for(inti=1;i<=9;i++){ for(intj=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+”,”); } System.out.println();//换行 } }}2.while循环while循环的语法:<初始表达式>while(<条件判断表达>){<语句或语句块>;<修改条件表达式>;}
3.do-while循环do-while循环的语法:<初始表达式>;do{<语句或语句块>;<修改条件表达式>;}while(<条件判断表达式>);2.5.3跳转语句流程控制语句还有一类为跳转语句,Java语言提供了4个这样的语句。1.break语句break语句用于从switch语句、循环语句和标记块中提前退出。2.continue语句continue语句用于跳过并跳到循环体最后,然后将控制返回到循环控制语句处。3.标记块语句标记块语句格式为:<label>:<语句>其中label为标签名,break语句和continue语句可以引用此标签名。4.return语句return语句严格说来不是跳转语句,它是方法的返回语句,它能使程序控制返回到调用它的方法。【例】跳转语句举例。publicclassMath6{publicstaticvoidmain(Stringargs[]){ Line5: for(inti=1;i<=9;i++){ for(intj=1;j<=9;j++){ if(j>i){System.out.println();continueLine5; }System.out.print(i+"*"+j+"="+i*j+","); } } }}数组是一种常见的数据结构,用于存储一组相同类型的数据或变量。2.6.1一维数组一维数组是一个序列,图所示为一个保存学生姓名的一维数组存储结构。
2.6数组1.一维数组的声明一维数组的声明有下列几种方式。(1)数据类型数组名[];例如:StringStudentName[];(2)数据类型[]数组名;例如:String[]StudentName;(3)数据类型数组名[]=new数据类型[元素个数];例如:StringStudentName[]=newString[50];2.一维数组的初始化一维数组的初始化有下列几种方式。(1)创建一维数组的同时初始化。例如:StringStudentName;StudentName=newString[3];StudentName[0]="Zhangshan";StudentName[1]="Lisi";StudentName[2]="Wangwu";上述方式也可简化为:StringStudentName[]={"Zhangshan","Lisi","Wangwu"};(2)使用代码来完成一维数组的初始化。for(inti=0;i<50;i++){StudentName[i]="ABC";}3.一维数组的引用一维数组的引用格式如下。数组名[下标];例如:StudentName[1];StudentName[i];例:使用for循环输出一维数组元素。publicvoidoutputElements(StringStudentName[]){for(inti=0;i<StudentName.length;i++){System.out.println(StudentName[i]);}}
2.6.2多维数组1.二维数组的声明二维数组的声明有下列几种方式。(1)数据类型数组名[][];例如:intSidScore[][];(2)数据类型[][]数组名;例如:int[][]SidScore;(3)数据类型数组名[]=new数据类型[元素个数1][元素个数2];例如:intSidScore[][]=newint[3][4];2.二维数组的初始化二维数组初始化比一维数组要复杂些,不过方式与一维的类似。
创建数组的同时初始化。例如:int[][]SidScore={{1,68,79,90},{2,88,75,60},{3,75,73,85}};3.二维数组的引用二维数组的引用格式如下:数组名[下标1][下标2];例如:SidScore[1][2];例:使用for循环输出二维数组元素。PublicvoidoutputElements(intSidScore[][]){for(inti=0;i<SidScore.length;i++){for(intj=0;j<arrayName[i].length;j++){System.out.println(SidScore[i][j]);}
}}2.7学生成绩管理实现本节介绍一个完整的学生成绩管理程序,本程序通过一个二维数组来保存学生的成绩信息,实现了成绩录入、成绩查询和输出排名的功能。下面是学生成绩管理程序的完整代码。importjava.io.*;importjava.util.*;publicclassxscjgl{publicstaticinta=5,b=3;//a保存班级人数5,b保存课程数目3publicstaticintscore[][]=newint[a][b+2];staticScannersc=newScanner(System.in);publicstaticvoidmain(Stringargs[])throwsIOException{cjlr();//调用成绩录入模块System.out.println("成绩查询----1");System.out.println("成绩排序----2");System.out.println("退出程序----0"); System.out.print("请选择:");ints=sc.nextInt();
switch(s){ case1: cjcx();//调用成绩查询模块 break; case2:cjpx();//调用成绩排序模块 break; default: System.out.println("退出程序OK"); }}//成绩录入模块publicstaticvoidcjlr()throwsIOException{ inti,j,c,d; for(i=0;i<a;i++){ score[i][0]=i+1;//保存学号 }
for(i=0;i<a;i++){ d=0; for(j=1;j<=b;j++){System.out.print("请输入第"+(i+1)+"个学生的第"+j+"门课的成绩"); c=sc.nextInt(); while(c<0||c>100) {System.out.print("请重新输入第"+(i+1)+"个学生的第"+j+"门课的成绩"); c=sc.nextInt(); } d=d+c; score[i][j]=c;//保存每一门成绩 System.out.println(score[i][j]); score[i][b+1]=d;//保存该生总成绩 } }}
//按学号查找模块publicstaticvoidcjcx()throwsIOException{ inte; System.out.print("请输入要查找学生的学号"); e=sc.nextInt(); while(e<0||e>a) { System.out.print("请重新输入要查找学生的学号"); e=sc.nextInt(); } for(intj=1;j<=b;j++) { System.out.println("学号为"+e+"的学生第"+j+"门课的成绩:"+score
[e-1][j]);}System.out.println("学号为"+e+"的学生总成绩:"+score[e-1][b+1]);}//按总分升序排序模块publicstaticvoidcjpx(){intscoretemp[][]=newint[a][2];//新建一数组只用于保存总分和学号for(inti=0;i<a;i++){scoretemp[i][1]=score[i][0];
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年影视剧本创作委托合同2篇
- 二零二五年抵押反担保委托合同书(矿产资源质押担保)3篇
- 二零二五版工程招投标与合同管理规范解读与应用3篇
- 二零二五年模具出口贸易代理合同3篇
- 二零二五版儿童关爱基金捐款赠与合同3篇
- 二零二五版矿山安全生产承包管理合同3篇
- 二零二五年度环保产业贷款合同样本集3篇
- 二零二五版房产代理佣金提成合同样本3篇
- 二零二五年度环境风险评估与治理项目合同3篇
- 二零二五版电力线路架设与安装监理合同3篇
- 2024年关爱留守儿童工作总结
- GB/T 45092-2024电解水制氢用电极性能测试与评价
- 《算术平方根》课件
- DB32T 4880-2024民用建筑碳排放计算标准
- 2024-2024年上海市高考英语试题及答案
- 注射泵管理规范及工作原理
- 山东省济南市2023-2024学年高二上学期期末考试化学试题 附答案
- 大唐电厂采购合同范例
- 国潮风中国风2025蛇年大吉蛇年模板
- GB/T 18724-2024印刷技术印刷品与印刷油墨耐各种试剂性的测定
- IEC 62368-1标准解读-中文
评论
0/150
提交评论