Java学习笔记09---语法结构之if语句
知识回顾 Java运算符 按照操作数的数目 单目 双目 三目 按照运算符的功能
算术运算
+ - * / % ++ –
赋值运算
= += -= *= /= %=
关系运算
> >= < <= != ==
逻辑运算
& | ^ ! && ||
位运算
& | ^ ~ << >> >>>
运算符号的优先级别
==============================================
笔试题
0.考察++ - - += ==类似的这种符号
- &和&&的区别
&可以视为逻辑运算 可以视为位运算 &&只能当作逻辑运算来用
如果两个符号都当作逻辑运算符来使用时候 如下区别
& 前后两个条件都是true 最终结果就是true
&& 短路与 正常情况下&执行结果是一致
当前面条件为false的时候 发生短路 最终结果false
2.最有效率的方式计算2*8的结果
00000010 2<<3 相当于2乘以2的3次幂
×00001000 00000010
--------------------- 0001000016
00000000 乘数刚好是2的次幂
00000000 5<<1
00000000
00000010
0000001000016
3.两个变量int a = 1; int b = 2;如何将两个变量的值进行呼唤
int a = 1;
int b = 2;
方式一 采用一个中间变量空间
int c = a;
a = b;
b = c;
好处是比较容易理解 值也不会出问题 不好在于产生一个新的内存空间
方式二
a = a+b;//a空间存储的是两个元素之和 a3 b没有变化 b2
b = a-b;//利用两个元素的和减原来的b剩下是原来的a 赋值给b b1 a3
a = a-b;//利用a空间两个元素的和 减 原来的a 剩下是原来的b 赋值给a a2 b1
好处是省略了一个新的空间 不好在于 第一个 相对来讲不是很容易理解 第二个 可能会在+产生值越界
方式三
a = a^b;// 1^2==>001
010
0113^2
010
001>1
122==>1 一个数字异或同一个数字两次 值不会改变
a异或中间值 b2
b = a^b; a异或中间值 b1
a = a^b; a2 b1
==================================================================
运算符号 变量常量 空间转换 数据类型
可以跟计算机简单的对话
Java语法结构(流程控制)
顺序结构
分支结构
单分支if 多分支switch
循环结构
for while do…while
需求?
设计一个小程序 帮我学习英文(星期七个单词)
用户输入的1--> monday
lib提供好的类库 Scanner引用 开发者给我们提供好的一个类文件 Scanner.java
int x = 1;
想要利用Scanner需要如下三步
1.在类上面的第一行 import java.util.Scanner;
2.需要输入之前Scanner y = new Scanner(System.in);//对象
3.通过y.让他来做事 int = nextInt(); String = nextLine(); 都可以读取输入的信息
if(值--boolean)
{单行语句;}/{多行语句}
if(值){
执行 单行 多行
}
if(条件){
代码1
}else{
代码2
}
如果明天下雨 在学校 否则就出去玩 嵌套
if(明天下雨){
在学校
}else if(坐过山车){
游乐场
}else if(看电影){
万达影城
}else{
}
1.可读性
起名字 规范
代码缩进
多添加注释
2.健壮性
程序严谨
小任务
1.利用if语句实现一个 判断给定月份对应的季节
month==5 345春天 678夏天 9 10 11秋天 12 1 2冬天
2.利用if语句实现一个 判断学生成绩对应的区间
不及格 60-70及格 70-80中 80-90良 90-100优秀 100满分 数据有误
3.扩展
利用if实现一个随机摇骰子的小游戏
随机摇一个骰子点数 1-6 123 456
玩家利用Scanner输入 猜大小
利用if比较 猜对啦 猜错啦 Math.random();