for四种,while,do while
今日内容
- 运算符(位运算符、三目运算符)
- 选择控制语句
- Scanner类和Random类的使用
- 循环结构(for、while、do-while)
- 跳转语句 (break、continue)
- 数组
======================
位运算符
运算符 | 含义 | 示例 |
---|---|---|
<< | 左移 | 5 << 2 = 20 —> 5 * 2^2 = 5 * 4 = 20 |
>> | 右移 | 5 >> 1 = 2 —> 5 / 2^1 = 5 / 2 = 2 |
>>> | 无符号右移 | 5 >>> 1 = 2—> 5 / 2^1 = 5 / 2 = 2 |
& | 与运算(只要有一个为0,运算结果则为0,否则为1) | 5 & 3 = 1 |
| | 或运算(只要有一个为1,运算结果就为1,否则为0) | 5 | 3 = 7 |
^ | 异或运算(如果两个数值一样,运算结果就为0,否则为1) | 5 ^ 3 = 6 |
~ | 取反运算(了解) | ~6—>0110 = -7 |
备注:位运算计算机底层采用的对整数进行二进制运算。
【没有无符号左移位运算符】
二进制整数表示:原码、反码、补码
三目运算符
?:
三目运算符格式:
布尔类型表达式 ? 真的结果值 : 假的结果值
三目运算符格式:
数据类型 变量名 = 布尔类型表达式 ? 真的结果值 : 假的结果值
计算方式:
如果布尔类型表达式结果是true,三目运算符运算的结果为紧邻?后面的值。
如果布尔类型表达式结果是false,三目运算符运算的结果为紧邻:后面的值。
备注:当三目运算符运算参与有其他的运算(如赋值运算),要求三目运算符中的?和:后面的值的【数据类型保持一致】。
流程控制
顺序结构
程序是从上往下进行加载,按照代码的编写顺序进行执行。
选择结构(分支结构)
if else 语句
-
if 单支情况
if语句的格式:
if (布尔类型表达式/布尔类型值) {
// 语句体。。。。
}
if语句(单支)的执行流程:
-
首先判断布尔类型表达式看它的结果是false还是true
-
如果是true就执行{}里面的方法体内容
-
如果是false就不执行{}里面的方法体内容,程序往后加载。
-
if else 双支情形
格式:
if (布尔类型表达式) {
// 语句体内容1;
} else {
// 语句体内容2;
}
if else 多支的执行流程:
- 首先判断布尔类型表达式看它的结果是true还是false
- 如果是true,就执行语句体内容1
- 如果是false,就执行语句体内容2
-
if … else if … else语句 多支情形
格式:
if(布尔类型表达式1) {
// 方法体内容1。。。。
} else if (布尔类型表达式2) {
// 方法体内容2.。。。。。
}
…
} else if (布尔类型表达式n) {
// 方法体内容n。。。。
} else {
// 方法体内容n+1。。。。
}
-
执行流程:
-
首先判断布尔类型表达式1看其结果是true还是false
-
如果是true,就执行方法体内容1
-
如果是false,就继续判断布尔类型表达式2,看其结果是true还是false
-
如果是true,就执行方法体内容2
-
如果是false,就继续判断布尔类型表达式…,看其结果是true还是false
-
…
-
如果以上所有的布尔类型表达式都为false,最后执行else{}里面的方法体内容n+1。
-
if … if … else …else语句 嵌套情形
格式:
if (布尔类型表达式1) {
// 方法体内容1
。。。。
if (布尔类型表达式2){
// 方法体内容2
。。。。。。
} else {
// 方法体内容3
。。。。。
}
} else {
// 方法体内容4
。。。。。。
}
执行流程:
-
首先判断布尔类型表达式1,看其结果是true还是false
-
如果是true,就执行方法体内容1,在继续判断布尔类型表达式2,看其结果是true还是
false,如果是true,就执行方法体内容2.
如果是false,就执行方法体内容3。。。。
-
如果是false,就执行方法体内容4,之后加载后面的程序。
-
-
If语句和三目运算符的互换
int num01 = 10;
int num02 = 20;
// 定义一个变量,保存num01和num02的最大值
int c;
if (num01 > num02) {
c = num01;
} else {
c = num02;
}
// 上面的语句我们也可以使用三目运算符
c = num01 > num02 ? num01 : num02;
switch case语句
格式:
switch(表达式/变量) {
case 常量值1:
// 语句体内容1
break;
case 常量值2:
// 语句体内容2
break;
.....
default:
// 语句体n
break;
}
执行流程:
-
首先计算出表达式中的值
-
其次,依次和case后面的常量值做比较,一旦有对应的值,就会执行相应的语句体内容,
在执行的过程中,遇到break就会结束switch case语句。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default中的语句体内容,然后switce case语句结束。
循环结构【重点】
【三种基本循环】for、 while、 do-while
循环结构组成部分:一般可以分为4部分
- 初始化语句:在循环最初开始时,需要定义一个初始化的变量,而且只会定义一次
- 条件判断(结束条件):如果条件成立满足,进入循环,如果条件不满足,则退出循环
- 循环体内容:重复要做的事情内容,可能包含很多条语句(事情是有规律的)
- 迭代语句(步进语句):每次循环结束后,需要执行步进语句(迭代语句),对初始化的变量做步进(迭代)
for循环语句
格式:
for(1.初始化语句;2.条件判断表达式;4.迭代语句){
//3.循环体内容
}
执行流程:
执行顺序:–>1–>2–>3–>4–>2–>3–>4–>2…2不满足为止
1.负责循环变量的初始值
2.负责
whille循环语句
格式:
//1.初始化语句;
while(2.判断条件)