JAVA学习笔记_第1页
JAVA学习笔记_第2页
JAVA学习笔记_第3页
JAVA学习笔记_第4页
JAVA学习笔记_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、 chapter3_知识点3.1运算符与表达式优先级描述符号结合性(与操作数)说明1分隔符.从左到右( )从左到右 从左到右2对象归类+从右到左-从右到左+从右到左前缀增,后缀增- -从右到左前缀减,后缀减从右到左!从右到左“!”不可以与“=”联用3乘除运算*从左到右/从左到右整数除法:取商的整数部分,小数部分去掉,不四舍五入%从左到右4加减+从左到右-从左到右5移位从左到右右移n位即除以2n从左到右6大小运算符从左到右从左到右=从左到右instanceof从左到右7相等=从左到右!=从左到右8按位与&从左到右9按位或|从左到右10异或从左到右11逻辑与&从左到右12逻辑或|从左到右13条件?

2、 :从右到左14赋值运算=从右到左+=-=*=/=%=&=3.2控制语句条件分支语句、循环语句和跳转语句 条件分支语句(if-else)1.表达式的值必须是boolean型的2.多个if-else语句嵌套可以形成多条件if-else语句 循环语句 while循环语句 1.格式: while (表达式) 若干语句 2.表达式的值为boolean型数据 do-while循环语句1.格式: do 若干语句 while(表达式);2.do-while和while循环的区别:do-while的循环体至少被执行一次。 for循环 1.格式:for (表达式1;表达式2;表达式3) 若干语句 2. “表达式

3、2”必须是一个求值为boolean型数据的表达式 switch开关语句1.格式:switch () case 常量值1:若干语句 break; case 常量值2:若干语句 break; case 常量值n:若干语句 break; default: 若干语句2.switch语句中表达式的值必须是整型或字符型。3.常量值1到常量值 n必须也是整型或字符型。4.执行过程: switch语句首先计算表达式的值,如果表达式的值和某个case 后面的常量值相同,就执行该case里的若干个语句,直到碰到break语句为止。 若没有任何常量值与表达式的值相同,则执行default后面的若干个语句;其中def

4、ault是可有可无的,如果它不存在,并且所有的常量值都和表达式的值不相同,那么switch语句就不会进行任何处理。 5.需要注意的,在同一个switch语句中,case后的常量值必须互不相同。 跳转语句指用关键字break或continue加上分号构成的语句。 在循环语句的循环体中使用跳转语句。l 在一个循环中,比如循环50次的循环语句中,如果在某次循环体的执行中执行了break语句,那么整个循环语句就结束。l 在一个循环中,比如循环50次的循环语句中,如果在某次循环体的执行中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行

5、下一次循环。3.3 for语句与数组格式:for(声明循环变量:数组的名字)其中,声明的循环变量的类型必须与数组的类型相同课后习题34.程序编写题(1)编写应用程序求1+2!+3!+10!代码如下:public class test4_1 public static void main(string args)int sum=0,a=1;/求 1+2!+3!+10!的值for(int i=2;i=10;i+)sum+=a;a*=i;system.out.println(1+2!+3!+10!=+sum); 运行结果:1+2!+3!+10!=409113(2)编写一个程序求100以内的全部素数代

6、码如下:public class test4_2 public static void main(string args)int i,j;/求 100 以内的素数for(i=2;i=100;i+)/判断 能否整除 i for(j=2;ji/2,则说明所得 i是素数,输出if(ji/2)system.out.print(i+、);system.out.println(是素数);运行结果:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97、是素数(3)计算1+1/2!+1/3!+的前20项的和代码如下:pub

7、lic class test4_3 public static void main(string args)double sum=0,a=1;/ 求1+1/2!+1/3!+前20项的和for(int i=2;i=20;i+)sum+=a;a*=1.0/i;system.out.println(1+1/2!+ +1/20!=+sum);运行结果:1+1/2!+ +1/20!=1.7182818284590455注意:循环开始的i值(4)编写程序求1000以内的所有完数代码如下:public class test4_4 public static void main(string args)int

8、 x,sum;/求1000以内的完数for(x=1;x=1000;x+)sum=0;/找出 i的所有因子并求和for(int i=1;ix;i+)if(x%i=0)sum+=i;/判断是否为完数,是则输出if(x=sum)system.out.print(x+、);system.out.print(是完数);运行结果:6、28、496、是完数(5)编写应用程序,计算8+88+的前10项之和代码如下:public class test4_5 public static void main(string args)long sum=0,a=0;/求 8+88+的前10项和for(int i=1;i

9、=10;i+) a=10*a+8; sum+=a;/输出最后一项,确保为10个8system.out.println(8+88+888前10项之和为+sum+n最后一项是+a);运行结果:8+88+888前10项之和为9876543200最后一项是8888888888注意: sum的最后是否是10个8,输出a确认; 将sum的数据类型设为long型,防止溢出;若改为int型,则输出结果变为1286608608溢出。 (6)编写应用程序输出满足1+2+3+n8888的最大整数n代码如下:public class test4_6 public static void main(string arg

10、s)int sum=0,n;/求满足1+2+3+n8888的最大整数nfor(n=1;sum8888的最大整数n=+(n-1);运行结果:满足1+2+3+n=89118888的最大整数n=133课后总结1.运算符l 赋值运算符:(=)1 右侧的数据不能超出左侧的变量的存储范围。2 如果右侧也是一个变量的话,这个变量的数据类型应该和左侧的数据类型一致 或者兼容3 字面值的数据类型 什么是字面值:直接出现在程序中的数值。 100:int(整数默认int) 1.3;double(小数默认double) float=1f long=1ll 算术运算符:+、-、*、%int a=10;double b=

11、10.0;/:取整运算10/3=3%:取余运算10%3=1l 布尔运算符:运算的结果是boolean类型。l 、=、false false-ture与的优先级高于获得优先级,当多个逻辑运算符连用时,最好通过括号来明确运算顺序。l 位运算:& (安位与)0代表假 1 真 有零则假| (按位或) 有一则真 (异或) 不一样为真一样为假 (位反) 1011-0100l :右移运算符l 3:将8的二进制数向右移动3bit0000100000000100|000000010|0000000001|000l +=,-=,*=,/=a+=2 a=a+2。l (ts)?a:b括号内为真返回值为a为假返回值为b

12、1 问号前面一定是布尔值2 a和b的数据类型一定一致l :带符号位的移动。符号位参与移动对于负数右移变成正数。又移一次是很大的正数,右移一次大于2的31次方l i+,+i;经过+运算之后变量自身的值都会+1.区别在于i+返回的值是i当前的值,先返回值后+1 +i返回的值是i+1之后的值,先+1后返回值 表达式运算完成之后无论i+,+i。i自身都会+12.基本输出:system.out.println(*);(换行)system.out.print(*);system.out.print()转义字符。去掉后面字符的特殊语法含义n 回车换行system.out.println(*);system.

13、out.print(*n);tab 制表符号。基本输入:将用户在键盘上输入大的内容保存在变量里。scanner s=new scanner(system.in)int age=s.nextint() string name=s.nextline()冒泡排序法:代码如下:public class bubblesort public static void sortiere(int arr) / “未完成”默认值设为true,表示未完成排序boolean unsortiert=true;/ 交换值时所使用的临时变量int temp;/ 当未完成排序时,继续循环while (unsortiert)/ 改变“未完成”为fasle,假设排序完成了unsortiert = false;/ 元素之间进行大小比较for (int i=0; i arri+1) temp=arri;arri=arri+1;arri+1=temp;/ 若发生交换,则把“未完成”值改为true,让while循环继续,寻找下一个可能发生交换的情况unsortiert = true;public static void main(string args) int a= 0,9,4,6,2,8,5,1,7,3;system.out.println(

温馨提示

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

评论

0/150

提交评论