06-流程控制
(1)今天做了什么:
科一今天刷了200多道,主要是把之前标记的错题反复看了,做了几遍,超速超载那几道终于熟练了。模拟做了一套92,一套91,还行,准备这两天约考了。Java方面今天看了流程控制语句,if、else、switch、for、while、do-while这些。整体感觉跟C++几乎一样,for循环的写法、while的判断逻辑都没变,学起来比较熟悉。找AI总结,主要区别在几个地方:一是Java的if条件必须严格是boolean类型,不能像C++那样,if(1)的写法,这个跟之前boolean不能转0或1是一致的。二是switch在Java里支持String类型了,C++的switch只能int和枚举,不用写一堆if-else来判断字符串了。三是for-each循环,for(int x : arr)这种写法,C++11也有类似的范围for,写法差不多,只是冒号和括号位置有点区别。
(2)明天准备做什么:
科一方面,约考成功后就不大量刷题了,每天做一套模拟保持手感,考前再看看错题就行。Java方面,明天准备看数组和字符串,这两个在C++里一个用原生数组+指针,一个用string类或者char数组,Java里应该都是对象,想看看具体是怎样,跟C++有什么区别。
(3)遇到的问题,如何解决:
科一今天问题不大,错题基本清得差不多了,就是有几道交警手势的题看图反应慢了点。解决方法就是把那几张手势图截下来多看,或找些自己的小技巧通记。Java方面今天遇到一个问题,就是switch支持String后,底层的原理是什么,为什么C++不支持。查了一下,发现Java是通过hashCode和equals来判断的,本质上是先比哈希值再比内容,字符串常量池也有关系,这个知识点之前没接触过,是新收获。另外for-each遍历的时候不能修改集合元素,这个跟C++范围for不能修改容器元素一样。