教材学习内容总结
本周我对教材第三章进行了学习,第三章对Java语言的语句、语法、类型、变量的定义等内容进行了比较详细的说明,相比之前的第一章和第二章,我觉得这一章还是比较好理解的,比较容易被接受。Java的基础语法跟C语言的语法有些相似,但又有不同之处,因为以前学过C语言,对于C语言的语法还有印象,所以这一章学起来总体来说还是比较轻松的,下面是我对本周学习内容的总结:
1.类型
•Java共分为两大类型:基本类型、类类型。
•基本类型:整数、字节、浮点数、字符、布尔。
整数:short整数(2字节)、int整数(4字节)、long整数(8字节)
字节:byte(1字节)(可表示-128~127的整数)
浮点数:主要用来储存小数数值,分为float浮点数(4字节)、double浮点数(8字节)
字符:char,储存字符符号,每个字符类型占2字节
布尔:boolean类型可表示true与false
2.批注
“//”单行批注
“/”、“/”多行批注
3.常用格式控制符号
Java语言的常用格式控制符号有一部分和C语言一样,在这里我总结了一些和C语言不同的以及我不太熟悉的符号:
•%e(%E):提供的数必须是float、double、Flaot、Double,%e表示输出格式遇到字母以小写表示,5E表示遇到字母以大写表示
•%s(%S):字符串格式
•%b(%B):%b表示输出结果是true或false,%B表示输出结果是TRUE或FALSE
•%n:换行符号
4.变量
•驼峰式命名法:给变量命名时,以小写字母开始,在每个单字开始时第一个字母使用大写
•要表示字符的话,必须使用“‘”符号括住字符,一对单引号里只能包括一个字符
•数字不可以开头
•不可以使用关键字
•严格区分大小写
•十六进制表示常量:以0x开头
•八进制表示常量:以0开头
5.运算符
•条件运算符:条件值?成立返回值:失败返回值
如果条件式结果为,则返回“:”前面的值,如果条件式结果为假,则返回“:”后面的值
•位运算:“~”为补码运算,将所有0变1,1变0
“<<”左移:将所有位往左移动指定位数,左边被挤出去的位会被丢弃,在右边补0
“>>”右移:将所有位往右移动指定位数,右边被挤出去的位会被丢弃,左边补上原来的位
“>>>”往右移后,最左边一定补0
6.递增、递减运算
•++i与i++的区别:
++i:例如:number=++i; //相当于 i=i+1; number=i;
i++:例如:number=i++; //相当于 number=i; i=i+1;
记忆法:++i,加号在前面,就先加一再返回变量值
i++,加号在后面,就先返回变量值再加一
7.类型转换
•输入的字符一定要不超过变量类型的长度
•有时编译程序会默认输入字符的变量类型,如果需指定类型变量,有两种办法:
第一种:在字符后面加上指定类型变量的大写首字母(例如: float PI = 3.14F)
第二种:在字符前加上指定的类型变量,并用括号括起来(例如: float PI = (float)3.14)
•如果表达式中包括不同类型的数值,则运算时以长度最长的的类型为主,其他数值将自动提升类型
•在哪种类型变量里面进行计算,结果就会是哪种类型变量(例如:System.out.println(10/3); 在int长度的空间中进行运算的答案为3,在double长度的空间里进行运算,结果为3.33)
8.流程控制
•if...else条件式:如果条件式不成立并不想做任何事,则else可以省略
•if...else if
•switch条件式:每个case语句后面都要加上“brak;”,最后面可加“default”,但若没有默认要处理的动作,可以省略"default"
若case中没有任何描述,也没有使用break,就继续往下面的语句执行,直到遇到break离开switch为止
•foe循环:for(初始式;执行结果必须是boolean的重复式;重复式) 在一个描述区块中若想写两个以上的描述句,则使用逗号“,”作分隔
•while循环:循环进行前就进行条件判断
•do...while循环:先执行动作,再判断是否需要重复
9.break与continue
•break可以离开当前switch、for、while、do...while的区块,并执行区块后下一个描述句,在switch中主要用来中断下一个case比较,在for、while、do...while中,主要用于中断当前循环
•continue与break类似,不过使用于循环,break会结束区块执行,而continue会略过之后的描述句,并回到循环区块开头进行下一次循环,而不是离开循环
•标签:以back为例,当break back;时,返回至back标签处,之后整个back区块不执行而跳过,对于continue,标签只能设在for之前
教材学习中的问题和解决过程
问题1:
教材62页的代码
教材中说会分别输出true、false、true,但是语句里并没有格式控制符号%b,为什么会输出true和false?
解决:
逻辑运算符有返回值,返回为布尔型,因为代码中用的是println,printfln输出自动换行,里面不需要加输出格式可自动返回返回值,但是如果用printf的话就需要加上输出格式了。
问题2:
对于教材75页的乘法表不是很理解
解决:
通过看教材以及和同学讨论,我理清了这个代码的思路:i从2开始,j从1开始,判断i是否等于9,若i不等于9,就执行“:”后面的语句,i加一,此时j不变,不换行;若i等于9,则执行“:”前面的语句,语句里面是++j/j,实现了j的自加,同时,j是先自加再返回j值,所以++j/j一直等于1,再加1以后等于2,就把新值2赋给i,根据输出语句,此时换行,再进行刚才的循环,实现了九九乘法表
代码调试中的问题和解决过程
代码都是按照书上的代码进行练习的,没有出现大的问题,在编译运行的时候只出现了一些细节性的小问题,类似于名称打错、括号只打了一个、一些标点用的是中文表标点的小错误,以后练习的时候一定多注意这些细节。
其他(感悟、思考等,可选)
我认为Java语言和C语言的语法其实很类似,Java的一些类型、格式控制符、运算符、语句都跟C语言基本相同,学习过C语言之后再学习这些语法感觉并不是很困难,比较容易接受,感觉自己通过不断地看视频、看书、看博客、看代码、敲代码之后,对于Java这门课程的学习也有很大的进步,相信自己通过不断的练习会对Java越来越熟练,越来越有感觉!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 18/38 |
参考资料
Java学习笔记(第8版)
《Java学习笔记(第8版)》学习指导