传智播客java基础班冯佳老师整理,还会持续更新,请关注冯佳老师的微
博fengjia_2553868@qq.com
1:位运算符
- 位运算符2<<3 2 * 8 == 2 * 2^3
- <<一个整数向左移动几位就乘以2的几次幂
- >>一个整数向右移动几位就除以2的几次幂,高位是0就补0,高位是1就补1
- >>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0
- 使用为运算符计算2*8效率最高
- 格式 :(条件表达式)?表达式1:表达式2;
- 如果条件为true,运算后的结果是表达式1;
- 如果条件为false,运算后的结果是表达式2;
- 条件运算符运算完之后一定有一个结果
1
2
3
4
|
int
x,y,z;
x =
5
;
y =
10
;
z = x > y ? x : y;
|
- 表达式
- 运算符的优先级。
- 简单一定有局限,三元运算符简化了if-else操作,但是条件表达式需要有结果才行。就几个数的最值可以使用三元运算符。
- 顺序结构
- 判断结构
- 选择结构
- 循环结构
- 三种格式:
-
第一种:
1234567891011if
(条件表达式){
执行语句;
}
System.out.println();
举例:
int
age =
17
;
if
(age >=
18
)
System.out.println(
"可以浏览本网站"
);
System.out.println(
"完了"
);
-
第二种:
123456789101112131415if
(条件表达式){
执行语句;
}
else
{
执行语句;
}
举例:
int
x =
1
;
if
(x ==
1
){
System.out.println(
"男厕所欢迎您"
);
}
else
{
System.out.println(
"女厕所欢迎您"
);
}
if
else
与三元运算符的区别
-
第三种:
1234567891011121314151617if
(条件表达式){
执行语句;
}
else
if
(条件表达式){
执行语句;
}
else
{
执行语句;
}
举例:
int
x =
1
;
if
(x ==
1
){
System.out.println(
"男厕所欢迎您"
);
}
else
if
(x ==
0
){
System.out.println(
"女厕所欢迎您"
);
}
else
{
System.out.println(
"无法识别您的性别"
);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
int
x =
2
, y =
1
;
if
(x==
1
){
if
(y==
1
){
System.out.println(
"a"
);
}
else
{
System.out.println(
"b"
);
}
}
else
{
if
(y==
1
){
System.out.println(
"c"
);
}
else
{
System.out.println(
"d"
);
}
}
|
-
格式:
1234567891011121314int
x =
10
;
switch
(表达式){
//byte,short,int,char,String 枚举
case
表达式里对应的值:
执行语句;
break
;
case
表达式里对应的值:
执行语句;
break
;
......
default
:
执行语句;
break
;
//最后一句的break可写可不写,因为程序已经执行到了末尾
}
-
案例:
1234567891011121314int
x =
10
;
String name =
"张三"
;
String gender =
"先生"
;
switch
(gender){
case
"先生"
:
System.out.println(name +
"是一位"
+ gender +
"喜欢吃饭睡觉打dota"
);
break
;
case
"女士"
:
System.out.println(name +
"是一位"
+ gender +
"逛街购物美容"
);
break
;
default
:
System.out.println(name +
"是一位"
+ gender +
"打雌性激素保持美貌容颜"
);
}
- switch结束的两种情况
- 1,当程序执行过程中遇到了break
- 2,当程序执行到了末尾处
- switch语句需要注意的两个细节
- 1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
例如:我们做一年有四季的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
int
month =
4
;
switch
(month){
case
3
:
case
4
:
case
5
:
System.out.println(month+
"月是春季"
);
break
;
case
6
:
case
7
:
case
8
:
System.out.println(month+
"月是夏季"
);
break
;
case
9
:
case
10
:
case
11
:
System.out.println(month+
"月是秋季"
);
break
;
case
12
:
case
1
:
case
2
:
System.out.println(month+
"月是冬季"
);
break
;
default
:
System.out.println(month+
"月没有这样的月份"
)
}
//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率
|
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
int
x =
3
;
switch
(x){
case
4
:
System.out.print(
"a"
);
break
;
default
:
System.out.print(
"b"
);
//当程序执行到了default但是他没有break,下面的case值不再判断,程序继续执行
case
5
:
System.out.print(
"c"
);
case
6
:
System.out.print(
"d"
);
break
;
//遇到break,程序跳出
case
7
:
System.out.print(
"e"
);
}
|
-
while循环
1234567891011格式:
while
(条件表达式){
循环体;
}
例如:
int
x =
3
;
while
(x<
6
){
}
System.out.println(
"x="
+x);
//循环体
x++;
//用x自增来控制循环次数
-
do while 循环
12345678910111213格式:
do
{
循环体;
控制循环次数
}
while
(条件表达式);
例如:
int
x =
3
;
do
{
System.out.println(
"x="
+x);
//循环体
x++;
//用x自增来控制循环次数
}
while
(x<
6
);
- while和do while的区别:
- dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行,再判断
- while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.