六类运算符+键盘录入+流程控制语句之顺序结构与选择结构中的if与switch语句部分+练习+面试题(java基础语法篇二)

一。运算符(对常量和变量进行操作的符号)


1.1算术运算符


尝试敲出以下代码,看看输出的结果分别是什么?


相信通过敲出上面代码并运行,已经看出 /运算符是取商,而且商是向下取整,%则是取余数


没理解的话做下下面两个题试试(答案在下面,先自己计算出答案再敲出来验证)

 

第一题答案 9,10,8 第二题答案 6,70 如下


加法的三种用法(输出结果 在右边黑的那块的最下面)


1.2赋值运算符



以此类推,我们不难猜出 -=就是把左边和右边做加法,然后赋值给左边 其它的我就不赘述了

理解了的话结合前面的知识做道面试题吧(答案在下,先思考然后敲出验证再查看答案的分析最好


答案:第一句报可能损失精度的错,第二句没错

分析:第一句是因为整数在进行运算时会先转换为int类型,然后运算后得到的结果也是int类型,赋给一个short类型的值有可能

出现精度损失的状况(int类型4个字节赋给两个字节的short类型相当于要去除前面两个字节),而+=运算符会把结果自动强转为左边的数据类型


1.3 比较运算符


看看并敲出下例,输出结果为右下角


1.4 逻辑运算符

    


代码示例如下,自己尝试手敲练习,想要代码复制粘贴是不可能的


1.5 位运算符(不需要掌握,因为我们开发中都是做十进制的运算)

为什么要讲:因为你会在很多源码中看到,因为所有运算操作在计算机底层会变成位运算,它会提高程序的效率

 图没看懂看看下面文字

位运算也就是先将数值转换为2进制后进行的运算

<<: 1<<2意思是把1向左边移两位右边补0,得到结果为100也就是十进制的4

>>: 12>>2意思是把1向右边移两位左边补0,得到结果为11也就是十进制的3

无符号右移与右移的区别:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是2。 无符号右移与带符号右移的区别就是 无符号始终补0

&: 1&2 也就是 1 & 0b10结果为0,同一位置都为1才得1,否则得0

|: 1|2 也就是 1 & 0b10结果为0b11也就是3,同一位置有一个为1就得1,否则得0

^:1|2 也就是 1 & 0b10结果为0b11也就是3,同一位置不相同得1,相同得0

~:这个就不跟你算了,涉及原反补码的知识(好学的同学可以百度了解了解),告诉你一个面试技巧,4的反码就是-5,为什么呢:正数最小为0,负数最大为-1,取-1到0的中间为分界线,那么与4对应的就是-5。

出个题:~80是多少?(答案就不给了,看了上面的分析很容易得出)


答案:

2<<3

使用第三方变量第二题很简单,所以我们给出的答案不包括这种(要点:一个数异或另一个数两次结果还是这个数)


1.6 三目运算符


如果觉得自己掌握了做下面几个题目练习下(放心,答案是有的)



二。键盘录入数据

示例如下(前期不懂的话先照着敲一遍)

为什么要导包:因为你用的类是别人写的,而它在你要导的那个包内


编译这个java文件并运行里面的类后,界面上会有个一闪一闪的 - 这时你输入一个整数 5 后

界面会显示你输入的数据是:5

注意:当你输入的不是整数时,页面会报以下错误(输入不匹配异常)


理解了的话做下面的练习


答案如下,必须要自己先练习


还有练习(厌学或者觉得自己掌握这一块了就跳过


进一步的练习(不给答案,自己练练)


三。流程控制语句之选择结构


3.1顺序结构


3.2选择结构


3.2.1 选择结构之if语句

 

 

示例如下


懂了的话做下下面这两个练习


答案结合了前面的键盘输入,少了导包跟a的输入(自己脑补或者复习前面键盘输入完成练习)



注意:java里没有2x与 1<a<3这样的写法 要写成 2*x 与 a>1 && a<3

理解了的话再做做下面两个练习(答案就不给了)


3.2.2 选择结构之switch语句(比较固定的值时用switch比if好)

(少了个})

注意:

1.case后面的值只能是常量表达式不能是变量

2.case后面的值不能重复

3.default可以省略,但是不建议,它的作用是对不正确的情况给出提示,除非判断的值固定

4.break可以省略,但是会发生case穿透,也就是当前case下面的语句也会执行,结果可能不是你想要的

5.default不一定要放在最后,可以放在任意位置,但是,建议放最后,它表示其它的情况

6.switch的结束条件:遇到break或者执行到末尾

7.执行顺序是先执行case,case中没有匹配的再走default跟摆放顺序无关

示例:


面试题:

答案:可以,不可以,JDK1.7后可以

合适的代码风格:


如下


练习题(第二题根据上面的‘注意’好好想想)

答案:


下面的题目自己练习哦,练习了的肯定掌握得更深


第一题因为暂时没学字符的键盘输入(后面讲),所以这里采用输入数字再转化为字符进行switch判断

第一题示例(这里截图没包括类的定义与main方法,你还是要写哦):



第二题示例:


第三题最终答案(利用case穿透,可以少写蛮多代码,不过这里用if比较好):

if与switch的区别及各自适用场景


流程控制语句先讲到这,因为下一部分的循环结构内容比较多也很重要所以单独在下一篇里详细讲解

下面怎么还有这么多空白...我要说不下去了(况且有耐心或者说有兴趣看到此处的人都不一定有),下面的计划是写给我自己的

明天要入职了,后面估计一周一篇,我计划27篇左右写完J2SE部分,后面除了一些比较重要的常用API还会有java反射机制与常用设计模式的内容,然后之后的计划是javaweb 也差不多二十多篇,再然后常用框架及其底层 再后面的话会有些工作中的经验之谈 但那也大概是一年半以后了,也希望到那时还能保持一个稳定的更新状态)

-----另外:希望对准备入门java开发的你有所帮助,能坚持学完并找到一份不错的工作


猜你喜欢

转载自blog.csdn.net/javacoder_juejue/article/details/80954521