这周主要学习了注释的使用,运算符的基本使用,认识了类型,变量与常量,以及一些语句语法。复习了进制转换。html
float PI = 3.14将double类型放入float变量中,会损失4字节的数据的问题
此时须要强制类型转换
解决方法:float PI = 3.14F 或者 float PI =(float)3.14
强制将3.14转化为byte类型windows
关于整数类型的转换
编译时出现integer number too large错误,缘由是程序中写下一个整数时,默认不超过int类型的长度
解决方法:long number = 2147483648L //用long配置长度学习
int a = 10; double b = a * 3.14
若是表达式中包括不一样类型数值,则运算时以长度最长的类型为主,其余数值自动提高类型编码
若是操做数都是不大于int的整数,则自动提高为int类型进行运算。spa
输出a的值使用“a=”
System.out.println(“a=”+a) // +表明字符串相加调试
转义字符 经过 来转变后面的字母或者符号的含义
\n:换行
\b:退格 至关于backspace
\r:按下回车键 windows中回车符是有两个字符来表示\r\n
\t:制表符 至关于tabcode
赋值运算符
x+=4; //x=x+4htm
if语句
a.每个格式都是单条语句
b.第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是能够写在其余表达式中
c.条件表达式不管写成什么样,只看最终的结构是不是ture或者falseblog
swith语句
a.switch语句选择的类型只有四种 byte short int char
b.case之间与default没有顺序。先执行第一个case,没有匹配的case执行default
c.结束switch语句的两种状况:遇到break,执行switch语句结束
d.若是匹配的case或者default没有对应的break,那么程序会继续向下执行,运行能够执行的语句,直到遇到break或switch结尾字符串
for语句
For里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,而后再执行循环后的操做表达式,接着继续判断循环条件,直到条件不知足为止。
Break语句应用于选择结构和循环结构,continue语句用于循环结构。
代码调试中的问题和解决过程
根据书上的代码,能够获得基本类型的范围
public class Range{ public static void main(String[] args) { //byte、short、int、long范围 System.out.printf("%d ~ %d%n",Byte.MIN_VALUE,Byte.MAX_VALUE); System.out.printf("%d ~ %d%n",Short.MIN_VALUE,Short.MAX_VALUE); System.out.printf("%d ~ %d%n",Integer.MIN_VALUE,Integer.MAX_VALUE); System.out.printf("%d ~ %d%n",Long.MIN_VALUE,Long.MAX_VALUE); //float、double精度范围 System.out.printf("%d ~ %d%n",Float.MIN_EXPONENT,Float.MAX_EXPONENT); System.out.printf("%d ~ %d%n",Double.MIN_EXPONENT,Double.MAX_EXPONENT); //char可表示的Unicode范围 System.out.printf("%h ~ %h%n",Character.MIN_VALUE,Character.MAX_VALUE); //boolean的两个值 System.out.printf("%b ~ %b%n",Boolean.TRUE,Boolean.FALSE); } }
可是在编译中编码出现问题,请教了高其同窗后获得解决。
结果以下图
而关于下面这个代码
public class Demo{ public static void main(String[] args) { int x=4270 x = x /1000 *1000; System.out.println(x); } }
运行结果应该是4000
X是int型,1000也是int型,运算结果也应该是int型而不应是double型,小数部分应该舍去。
关于算数运算符的语法
public class Demo{ public static void main(String[] args) { int a = 3,b; b = a ++; System.out.println(b); System.out.println(a); } }
运算结果是 3 4
代码应该理解为a先赋值给b而后a=a+1, 若是代码是b=++a,则结果为 4 4
关于赋值运算符的错误使用
public class Demo{ public static void main(String[] args) { short s = 4; s = s + 5; System.out.println(s); } }
出现编译错误,没有考虑从int转换到short可能会有损失,容易丢失精度
能够改为s+=5;
课本P64代码修改成
public class Shift { public static void main(String[] args) { int number=1; System.out.printf("2 的 0 次方: %d%n",number); System.out.printf("2 的 1 次方: %d%n",number << 1); System.out.printf("2 的 2 次方: %d%n",number << 1); System.out.printf("2 的 3 次方: %d%n",number << 1); } }
还要不断敲代码加以巩固,流程控制和一些语法不少与C相似,也是c的巩固与复习。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 4000行 | 16篇 | 300小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 200/400 | 1/3 | 25/45 |