day01_2020-09-28
question:
1)byte b=1; b=b+1;
2)byte b=1;b+=1;
是否能编译通过?why?
answer:
1)不能编译通过。byte b=1;声明时可以用byte范围内的整数初始化b(超范围不行)。b=b+1;1为整数默认为int类型,int+byte类型自动提升为int,所以左边类型范围至少要int而为byte,无法接收。
2)能通过编译。b+=1;内部会进行强制类型转换,即b=(byte)(b+1)。
自动类型提升:
byte short char->int ->long->float->double
byte short char不会相互转换 它们计算时首先转换成int
boolean不能转换成其它基本数据类型
day02_0929
question:break和continue区别
answer:
1)break:可用于跳出所在的循环语句
执行后所在循环体结束。
2)continue:不执行所在循环语句中的剩余语句,直接进入下一次循环判断。
执行后所在循环体未结束,只是后续语句不执行就直接进入下一轮迭代
如下图,continue所在的最内层循环的后续语句不执行,直接进入下一次循环
break语句执行后直接跳出所在循环,所在循环体后续循环内容不再执行。
day03_0930
question1:while 和do while 区别
question2:for while适用场景
answer1:
1.第一次判断时间不同
1)while先进行第一次判断,判断语句为true则进去循环体。
2)do while先执行一次循环体再进行第一次判断。
2.执行次数不同
1)while执行次数为【0,n】,执行次数大于等于0次
2)do while为【1,n】,即执行次数大于等于1次
answer2:
1.for常用于预先梦判断循环次数操作中
2.while常用于无法预先判断循环次数操作中
3.for自定义用于循环判断的变量作用域威for循环体,作用域更小。
4.while循环无法在循环判断语句处自定义变量,难以控制计数变量作用域。