第2章Java语言基础(上)_第1页
第2章Java语言基础(上)_第2页
第2章Java语言基础(上)_第3页
第2章Java语言基础(上)_第4页
第2章Java语言基础(上)_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

Java语言基础(上)第二章Java是面向对象并且可以跨平台的编程语言Java程序是运行在JVM之上要运行和开发Java程序,必须下载和安装由Sun公司提供的JDK(Java开发工具包)配置环境变量:Path和CLASSPATH三个常用的JDK工具:javac、java回顾(1)回顾(2)纠正代码中的错误,输出“早上好!”说出开发Java程序的步骤?publicclassTest{publicvoidmain(String[]args){system.out.println("早上好!");}}publicstaticSystem中S要大写本章相关词汇(蓝色为关键字)单词说明byte数据类型,字节型boolean数据类型,布尔型true真,布尔型的字面值false假,布尔型的字面值本章目标Java中的注释Java中的变量和数据类型Java中变量的作用域规则数据类型转换Java中的运算符和表达式程序控制结构电脑使用内存来记忆计算时所使用的数据内存如何存储数据?内存像旅馆数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间1、开房间(单人间、双人间、总统套间)2、入住√内存如何存放数据数据类型(1)数据类型用来确定要存储在内存单元中的数据的类型;在Java中,数据类型被区分成两个种类:原始数据类型引用数据类型数据属于不同类别非洲ThequickbrownfoxTRUE数据非数值数值整型非整型9002.129999/12/20032.175123陈扬char非数值数值整型intshortdoublefloat非整型

数据类型数据类型(2)——原始数据类型longbooleanbyte原始数据类型是最简单的数据形式数据类型大小位取值范围说明boolean布尔型1true/false用于存储真值/假值byte

字节型8-128~127数据存储在内存中的最原始形态char

字符型16‘\u0000’~‘\uFFFF’以Unicode编码方式存储字符short短整型16-32768~32767略int

整型32-231~231-1

略long长整型64-263~263-1

略float浮点型32略略double双精度64略略数据类型(3)——原始数据类型内存10001000变量:一个数据存储空间的表示对于专业程序员,数据存入内存不算完:怎么找到存入的数据?存进去还能改吗?不同数据存入具有不同内存地址的空间,相互独立变量(1)——内存如何存放数据内存地址不好记,怎么办?通过内存中小房间的别名找到数据存储的位置变量是存储数据的一个基本单元房间

房间名字

房间类型

入住的客人变量

变量名

变量类型

变量值对应变量(2)——为什么需要变量使用变量的步骤:第一步:声明一个变量第二步:赋值第三步:使用变量数据类型变量名=数值;根据类型开辟空间将数据存入空间取出数据使用数据类型变量名;变量名=数值;intmoney=1000;intmoney;money=1000;变量(3)——变量的声明和赋值1、在内存中存储本金1000元2、显示内存中存储的数据的值publicclassHelloCCAT{publicstaticvoidmain(String[]args){

intmoney=1000;//存数据

}}

数据类型

变量名

内存空间存的数值

演示示例:如何存取变量System.out.println(money);//使用数据变量(4)——变量的应用1、字母2、下划线‘_’3、‘$’

符号首字母任意多的:1、数字2、字母3、下划线‘_’4、‘$’符号其余部分变量名Java语言中,变量命名要符合一定规则money,score,name,sex变量命名规范:简短且能清楚地表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写。例如:myScore变量(5)——变量命名规则检查下面这些是否是合法的变量名principalcost_pricemarks_3$lastnamecity123ratediscount%zipcodeCityint××××变量(6)——变量命名规则数据类型转换(1)程序中经常会遇到要将数据类型进行转换的情况(如:在一个表达式中存在不同类型的操作数时),数据类型转换有两种情况:

自动类型转换

强制类型转换某班第一次Java考试平均分81.29,第二次比第一次多2分,计算第二次考试平均分?

doublefirstAvg=81.29;//第一次平均分

doublesecondAvg;//第二次平均分

intrise=2;secondAvg=firstAvg+rise;

System.out.println("第二次平均分是:"+secondAvg);数据类型转换(2)——自动转换在某种条件下,系统自动完成类型转换两种类型兼容例如:int和double兼容目标类型大于源类型例如:double型大于int型对于表达式如果一个操作数为double型,则整个表达式可提升为double型数据类型转换(3)——自动转换intage=19;charsex=‘女’;

charresult=age+sex;

下面语句正确吗?inta=10;intb=10.2;doublec=10;c=a;intd=c;int不可以自动转换成chardouble不可以自动转化成int数据类型转换(4)——自动转换intbefore=20;//apple笔记本市场份额doublerise=9.8;//增长的份额intnow=before+rise;//现在的份额intnow=before+(int)rise;

去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?编译出错:不能完成自动类型转换(类型名)表达式强制类型转换intb=(int)10.2;doublea=10;intc=(int)a;更改为

演示示例:强制类型转换强制类型转换数据类型转换(5)——强制转换在某种条件下,需要程序员强制转型两种类型兼容例如:int和double兼容目标类型小于源类型例如:int型小于double型数据类型转换(6)——强制转换运算与表达式(1)运算符是通过一定的运算规则操作一个或多个操作数,并生成结果的特定符号;运算符和操作数的有效组合称为表达式;Java提供了一系列丰富的运算符,包括:算术运算符关系运算符逻辑运算符条件运算符赋值运算符运算与表达式(2)——算术运算符算术运算符主要用于数学计算,一般使用数值作为操作数:运算符说明一元-一元减,即取负++自增,如:++a等价于a=a+1--自减,如:--a等价于a=a–1二元+加法,返回两个操作数的和-减法,返回两个操作数的差*乘法,返回两个操作数的积/除法,返回两个操作数的商%取模,返回两个操作数整除后的余数运算与表达式(3)——关系运算符关系运算符可以测试两个操作数之间的关系(但不会改变操作数的值),关系表达式的结果为boolean型true/false:运算符说明==等于,检查两个操作数是否相等!=不等于,检查两个操作数是否不相等>大于,检查左操作数是否大于右操作数>=大于等于,检查左操作数是否大于或等于右操作数<小于,检查左操作数是否小于右操作数<=小于等于,检查左操作数是否小于或等于右操作数运算与表达式(4)——逻辑运算符逻辑运算符与boolean型操作数一起使用:运算符说明JavaC一元!逻辑非(NOT)逻辑取非(NOT)二元&逻辑与(AND)与C语言中的&&相同按位与|逻辑或(OR)与C语言中的||相同按位或&&短路与如左操作数为false,则不运算右操作数逻辑与(AND)||短路或如左操作数为true,则不运算右操作数逻辑或(OR)短路与和短路或Java提供了两个在其它计算机语言中没有的逻辑运算符,这就是逻辑与和逻辑或的短路版本;对于短路与(&&),如果其左侧为false,则不再计算其右侧,整个表达式的结果为false,只有左侧为true时才计算右侧;对于短路或(||),如果其左侧为true,则不再计算其右侧,整个表达式的结果为true,只有左侧为false时,才计算右侧。短路与示例inta=10;intb=20;if(++a==12&++b==22){……}System.out.println(a);System.out.println(b);/*这里使用的是逻辑与,试分析最后的输出结果*/inta=10;intb=20;if(++a==12&&++b==22){……}System.out.println(a);System.out.println(b);/*这里使用的是短路与,试分析最后的输出结果*/11211120运算与表达式(5)——赋值运算符赋值运算符的运算顺序是从右至左的:运算符说明=赋值,将右侧的值赋给左侧的变量+=相加并赋值,如:a+=b等价于a=a+b-=相减并赋值,如:a-=b等价于a=a–b*=相乘并赋值,如:a*=b等价于a=a*b/=相除并赋值,如:a/=b等价于a=a/b%=取模并赋值,如:a%=b等价于a=a%b运算与表达式(7)——条件运算符?:条件运算符是三元运算符;它的一般形式是:

表达式1?表达式2:表达式3根据表达式1的结果来判断执行表达式2还是表达式3,如果表达式1的结果为true,则执行表达式2,否则执行表达式3;条件运算符在某些情况下能够替代小型的if…else语句。运算与表达式(8)——优先级很多情况下,一个表达式由多个运算符组成,优先级决定运算符的计算顺序:优先级运算符1括号:()和[]2一元运算符:-、++(前置)、--(前置)、!3算术运算符:*、/、%、+和-4关系运算符:>、>=、<、<=、==和!=5逻辑运算符:&、|、&&和||6条件运算符:?:7赋值运算符:=、*=、/=、%=、+=和-=变量的作用域(1)变量的作用域指变量起作用的范围,说明变量在什么部分可以被访问;Java变量声明可以在程序的任何部分声明,即:何处使用,何处声明。作用域规则变量的作用域属于声明它的代码块,变量的最小作用域是包含它的一对{}之间。/*有1,2,3,4四个数字,能组成多少个不相同且无重复的三位数?*/public

classScopeVariable{

public

static

voidmain(String[]args){

intcount=0;

for(inti=1;i<=4;i++)//在需要使用变量时声明

{

for(intj=1;j<=4;j++){

for(intk=1;k<=4;k++){

if(i!=j&&i!=k&&j!=k){

inttemp=i*100+j*10+k;System.out.print(temp+"\t");count++;}}}}/*思考:在此处可以访问到变量k吗?*/

System.out.println("\n有:"+count+"个符合要求的数");}}变量的作用域(2)控制流语句(1)一般情况下,程序是从上往下依次顺序执行的;但很多时候,我们需要改变程序执行的流程,这就使用到了控制流语句;控制流语句包括:判断语句循环语句跳转语句控制流语句(2)——判断语句判断语句也称作条件语句或分支语句;判断语句主要用来控制程序在何种情况下执行某一部分;判断语句包括:if语句if…else语句if…elseif语句switch…case语句控制流语句(3)——if条件结构if条件结构是根据条件判断之后再做处理if(条件){

//语句}if(令狐冲Java成绩>90){

师父奖励令狐冲;}结合问题基本的if条件结构表达式语句假真控制流语句(4)——if条件结构如果令狐冲的Java考试成绩大于90分,师父就奖励他《独孤九剑》剑谱使用if条件结构该如何实现importjava.util.Scanner;publicclassHelloCCAT2{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);System.out.print("输入令狐冲的Java成绩:");

intscore=input.nextInt();//令狐冲的Java成绩

if

(score>90){//判断是否大于90分

System.out.println("师父说:不错,给你《独孤九剑》剑谱");

}

}}演示示例:使用基本if条件结构

if-else条件结构if(条件){

//语句1

}else{//语句2}if(令狐冲考试成绩>90){

师父奖励令狐冲;}else{

师父罚他闭关思过;}结合问题4真表达式语句1假语句2控制流语句(5)——if-else条件结构多重if结构就是在else部分中还包含其他if块控制流语句(6)——多重ifif

(条件){

//语句

}

elseif

(条件){

//语句

}else{//语句

}可以有多个可以省略多重if结构假真真假表达式1语句1表达式2语句2语句3

对学员的结业考试成绩评测成绩>=90:优秀成绩>=80:良好 成绩>=60:中等成绩<60:差使用多重if结构控制流语句(7)——多重if控制流语句(8)——多重if使用多重if结构解决问题

int

score=70;//考试成绩

if(score>=90){

System.out.println("优秀");}

elseif(score>=80){

System.out.println("良好");}

elseif(score>=60){

System.out.println("中等");}

else{

System.out.println("差");}大于等于90分大于等于60分,小于80分小于60分大于等于80分,小于90分演示示例:使用多重if结构控制流语句(9)——switch结构

令狐冲参加比武大会如果获得第一名,将出任武林盟主如果获得第二名,将出任武当掌门如果获得第三名,将出任峨嵋掌门否则,将被逐出师门使用if条件结构如何实现?更好的解决办法:使用switch结构解决switch(表达式){

case

常量1:

语句;

break;

case

常量2:

语句;

break;

default:

语句;}switch结构控制流语句(10)——switch结构计算表达式的值如果等于常量1如果等于常量2如果没有找到匹配的值使用switch结构解决问题控制流语句(11)——switch结构intmingCi=1;switch(mingCi){

case

1:System.out.println("出任武林盟主");

break;

case2:System.out.println("出任武当掌门");

break;

case3:System.out.println("出任峨嵋掌门");

break;

default:System.out.println("被逐出师门");}第一名的情况下第二名的情况下第三名的情况下其他情况下演示示例:使用switch结构控制流语句(12)——switch和多重if结构相同点不同点switch多重if都可以实现多分支结构只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况控制流语句(13)——循环语句循环语句也称作迭代语句;循环语句可用于重复执行相同的操作;循环语句包括:while语句do…while语句for语句控制流语句(14)——while循环特点:先判断,再执行while(循环条件

){

循环操作}符合条件,循环继续执行;否则,循环退出循环中被重复执行的操作int

i=1;while(i<=30

){

System.out.println("我能行!");

i++;}编码规范:缩进、换行循环操作循环条件真假如何用程序描述下面这个故事呢?为了备战,令狐冲锲而不舍地练习,盈盈严格把关…“盈盈,怎么样,可以了吗?”“不行,高音部分唱得还不是很好,钢琴还要继续练啊!”没有听到“很棒”的评价,看来革命尚未成功,令狐冲并不气馁:早上5点练声,上午练钢琴,下午到声乐老师家练习唱歌,晚上练习舞蹈基本功。

循环条件

循环操作使用while循环的步骤1、分析循环条件和循环操作2、套用while语法写出代码3、检查循环是否能够退出控制流语句(15)——while循环控制流语句(16)——while循环System.out.print("表演得怎么样?(y/n):");answer=input.next();while(!answer.equals("y")){ System.out.println("早上5点开始练声!");

System.out.println("上午练习钢琴!");

System.out.println("下午到声乐老师家练习唱歌!");

System.out.println("晚上练习舞蹈基本功!");

System.out.print("表演得怎样?(y/n):");

answer=input.next();}System.out.println("圆满完成!");循环条件循环操作比较两个String类型的值是否相等控制流语句(17)——do-while循环do{

循环操作}while(循环条件

);先执行一遍循环操作符合条件,循环继续执行;否则,循环退出特点:先执行,再判断循环操作循环条件真假控制流语句(18)——do-while循环如何用程序讲述下面的故事?苦练半年,眼看大赛在即,盈盈提议:彩排一次,如果很令人满意,以后就不用彩排了,否则每天都要彩排,直到现场表现让她满意为止!他能否用动听的歌声震撼盈盈,用美妙的钢琴声博得赞赏呢?……do{

循环操作}while(循环条件);while(循环条件){

循环操作}while循环先判断,再执行不适合描述此故事?控制流语句(19)——do-while循环do{ System.out.println("唱歌!");

System.out.println("演奏肖邦钢琴曲!");

System.out.print("可以了吗?(y/n):");

answer=input.next();}while(!answer.equals("y")

);System.out.println("大功告成!");循环条件先执行一遍循环操作

inti=0;while(i<100){System.out.println("我最棒");

i++;}

for(inti=0;i<100;i++){System.out.println("我最棒");}for比while更简洁while循环结构for循环结构控制流语句(20)——for循环for循环的语法和执行顺序for(;;){;}

条件为true

循环体被执行for(inti=0;i<100;i++){System.out.println("我最棒");}

代码规范:格式对齐、代码的缩进

表达式1

表达式2

表达式3

循环操作参数初始化条件判断更新循环变量1243控制流语句(21)——for循环//省略声明变量

for(inti=0;i<5;i++){//循环5次录入5门课成绩

System.out.print("请输入5门功课中第"+(i+1)+"门课的成绩:");score=input.nextInt();sum=sum+score;}avg=sum/5;//计算平均分

System.out.println(name+"的平均分是:"+avg);初始值:i=0循环条件:i<5循环变量改变:i++循环操作执行5次演示示例:使用for循环结构控制流语句(22)——for循环控制流语句(23)——break语句inti=2;switch(i){case1:System.out.println("星期一");

break;

case2:

System.out.println("星期二");

break;

}//其他语句遇到break,立即跳出switch语句回顾break用于switch语句描述4000米长跑比赛for(inti=0;i<10;i++){

跑400米;}if(不能坚持){

break;//退出比赛

}第8圈,快累死了…我要退出…控制流语句(24)——break语句break:改变程序控制流用于do-while、while、for中时,可跳出循环而执行循环后面的语句while(…){

温馨提示

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

评论

0/150

提交评论