数据类型中补充的几个小问题
1)在定义Long或者Float类型变量的时候,要加L或者f。整数默认是int类型,浮点数默认晨double。
byte,short在定义的肘候,他们接收的某实是一个int类型的值。这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。
2)byte值的问题
3)数据类型转换之默认转换
为什么float在long的后面?
解析图
4)Java语言中字符char可以存储一个中文汉字吗?为什么呢?
可以。因为java语言中的字符占用两个字节。(Java语言采用的是Unicode编码)
运算符(掌握)
1)概述
就是对常量和变量进行操作的符号。
2)分类
> 算术运算符
+,-,*,/,%,++,--
算术运算符案例图
1)注意:
A:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
B: '/'获取的是除法操作的商,'%'获取的是除法操作的余数。
2)++,--运算符的使用:
A:单独使用,放在操作数的前面和后面效果一样。(这种用法是我们比较常见)
B:参与运算使用,放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自减或者自增。
作用:就是对变量进行自增1或者自减1。
单独使用
参与运算
3)++,--的练习题
题目
第一题解析图
第二题解析图
4)+的三种用法以及案例
> 赋值运算符
=,+=,-=,*=,/=,%= 除=外,其余均为扩展的赋值运算符,=为基本的赋值运算符
基本赋值运算符,即把左边的值赋给右边;而扩展赋值运算符,先将左边和右边进行运算,然后赋值给左边。
赋值运算符的案例
面试题案例
> 比较运算符
==,!=,>,=,<=
特点:无论操作是简单还是复杂,结果都是boolean类型
注意事项:“==” 不能写成 “=”
比较运算符的案例
> 逻辑运算符
&,|,^,! &&,||
特点:逻辑运算符一般用于连接boolean类型的表达式或者值。
表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。举例:(算术表达式) a+b,(比较表达式) a == b
逻辑运算符用于连接布尔型表达式,在Java中不可以写成33&x<6。
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或(^)与或(|)的不同之处是:当左右都为true时,结果为false。
结论:&逻辑与:有false则false
结论:|逻辑或:有true则true
结论:^逻辑异或:相同为false,不同为true
结论:!逻辑非:取反
&与&&的区别案例
> 位运算符(了解)
<>,>>>,&,|,^,~
注意:要做位运算,首先要把数据转换为二进制。
位运算符案例题
&和|的运算解析
^和~的运算解析
^的特点:一个数据对另一个数据位异或两次,该数本身不变。
<
>>:右移 最高位是o,左边补齐o; 最高位是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0
相关的例题
程序的原理解析
面试题:
1)请用最有效率的方式写出计算2乘以8的结果
2*8 ——> 2 << 3
2)请自己实现两个整数变量的交换(^的特点)
> 三目运算符
1)格式:(关系表达式)?表达式1:表达式2;
关系表达式的结果是一个boolean类型,如果为true,运算后的结果是表达式1;如果为false,运算后的结果是表达式2。
2)示例
利用三目运算求x,y中的最大值
3)练习题
I.获取两个整数中的最大值
II.获取三个整数中的最大值
III.比较两个整数是否相同
键盘录入数据(掌握)
1)概述
我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的。所以,我准备把数据改进为键盘录入,提高程序的灵活性。
2)如何实现键盘录入数据呢?
I.导包 import java.util.Scanner;(位置放到class定义的上面)
II.创建对象 Scanner sc = new Scanner(System.in);
III.接收数据 int x = sc.nextlnt();
代码样式
3)键盘录入数据练习
在类前添加
导包
I.键盘录入两个数据,并对这两个数据求和,输出其结果
II.键盘录入两个数据,获取这两个数据中的最大值
III.键盘录入三个数据,获取这三个数据中的最大值
IV.键盘录入两个数据,比较这两个数据是否相等
流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句分类:顺序结构、选择结构、循环结构
> 顺序结构
1)概述
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。【总的来说:写在前面的先执行,写在后面的后执行】
2)结构图
顺序结构图
3)示例
> 选择结构(掌握)
1)概述
也被称为分支结构。选择结构有特定的语法规则,代码要执行具体的逻运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
Java语言提供了两种选择结构语句:if语句和switch语句
2)if语句(有三种格式)
注意事项:关系表达式无论简单还是复杂,结果必须是boolean类型。if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。(建议永远不要省略。)【一般来说:有左大括号就没有分号,有分号就没有左大括号】
I.if(关系表达式){ 语句体 }
执行流程:首先判断关系表达式看结果是true还是false,如果为true就执行语句体;如果为false就不执行语句体。
格式I的流程图
格式I的示例
II.if(关系表达式){ 语句体1; }else{ 语句体2; }
执行流程:首先判断关系表达式看其结果是true还是false,如果是true就执行语句体1;如果是false就执行语句体2。
格式II的流程图
格式II的示例
if语句格式II的练习:
(1)获取两个数据中的较大的值
(2)判断一个数据是奇数还是偶数,并输入
前面讲解过三元运算符,它根据比较判断后,给出的也是两个结果,所以,这种情况和if语句的格式II很相似,他们在某些情况下应该是可以相互转换的。
三元运算符的操作都可以使用if语句改进,反之不成立。
什么时候不成立呢?当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果。
不成立的示例
III.if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; }... else{ 语句体n+1; }
执行流程:首先判断关系表达式1看其结果是true还是false,如果是true就执行语句体1;如果是false就继续判断关系表达式2看其结果是true还是false,如果是true就执行语句体2;如果是false就继续判断关系表达式...看其结果是true还是false.....如果没有如何关系表达式为true,就执行语句体n+1。
格式III的流程图
示例:键盘录入一个成绩,判断并输出成绩的等级。 0~60为不及格,60~70为及格,70~80为良,80~90为好,90~100为优秀。
三种if语句分别适合做什么事情呢?格式I适合做单个判断;格式II适合做两个判断;格式III适合做多个判断。
if语句的练习题
(1)键盘录入x的值,计算出y的并输出。
要求
(2)键盘录入月份的值,输出对应的季节。
要求
主要的语句体
(3)获取三个数据中的最大值