Java基础(二)
程序员文章站
2022-04-07 18:03:21
Java基础(二)Java运算符进制算数运算符字符串+的操作运算规则判断技巧赋值运算符自增自减运算符关系运算符逻辑运算符短路逻辑运算符三元运算符Java键盘录入和随机数键盘录入随机数Java流程控制语句顺序结构分支语句ifswitch循环语句for循环while循环do_while循环三种循环的区别无限循环跳转控制语句continue关键字break关键字Java运算符进制十进制:前面是没有任何标记的。二进制:前面需要用0b标记,b可以是大写的,也可以是小写的。八进制:前面需要用0标记。十六进...
Java基础(二)
四、Java运算符
1、进制
- 十进制:前面是没有任何标记的。
- 二进制:前面需要用0b标记,b可以是大写的,也可以是小写的。
- 八进制:前面需要用0标记。
- 十六进制:前面需要用0x标记,x可以是大写的,也可以是小写的。
2、算数运算符
- +:就是加法运算。
- -:就是减法运算。
- *:就是乘法运算。
- /:就是除法运算。
(在Java中,整除相除,结果只能是整数。在Java中,小数运算,结果有可能是不精确的。) - %:也是除法运算,只不过获取的是余数
3、字符串+的操作
(1)运算规则
- 字符串+任意的数据类型,任意的数据类型+字符串。
都是把里面的内容原样拼接在一起。
(2)判断技巧
- 如果有多个+连续。
从左到右依次+,如果在这个过程中,没有字符串,那么就是正常的相加。如果有字符串,就是拼接操作。
4、赋值运算符
- = : 把右边赋值给左边
- +=:左右相加赋值给左边,对右边的变量没有任何影响
- +=底层隐含了一个强制类型的转换,a+=b,相当于 a = (byte)(a + b);
- -=:左右相减赋值给左边,对右边的变量没有任何影响
- *=:左右相乘赋值给左边,对右边的变量没有任何影响
- /=:左右相除赋值给左边,对右边的变量没有任何影响
- %=:左右取余赋值给左边,对右边的变量没有任何影响
5、自增自减运算符
- ++:把变量里面的值+1
- –:把变量里面的值-1
- 不管是先++,还是后++,主要单独成一行,运算结果都是一样的。
- 自增自减运算符是针对于变量而言的。不能拿着常量去自增,自减。
- 当自增或者自减运算符,参与运算的时候。先++和后++就不一样了。
6、关系运算符
- 又名比较运算符,或者判断运算符。
-
==
a==b,判断a和b的值是否相等,成立为true,不成立为false -
=
a!=b,判断a和b的值是否不相等,成立为true,不成立为false -
>
a>b,判断a是否大于b,成立为true,不成立为false -
>=
a==b,判断a和b的值是否相等,成立为true,不成立为false -
<
a<b,判断a是否小于b,成立为true,不成立为false -
<=
a<=b,判断a是否小于等于b,成立为true,不成立为false
7、逻辑运算符
- & 逻辑与(且),逻辑与(且) — 全真才真,有假则假。
- | 逻辑或,逻辑或 — 有真则真,全假才假。
- ! 逻辑非(取反)
8、短路逻辑运算符
- &&:运行结果跟一个&是一样的。
- || :运行结果跟一个|是一样的的。
- 注意事项
具有短路效果。
当左边的表达式,可以决定整个运算符的结果时,那么右边不参与运行。
9、三元运算符
-
又叫:三元表达式,问号冒号表达式。
-
格式:
关系表达式 ? 表达式1 : 表达式2; -
运行规则
- 计算关系表达式,他一定要有一个布尔类型的结果。
- 如果为真,表达式1的值就是整个三元表达式的结果。
- 如果为假,表达式2的值就是整个三元表达式的结果。
-
注意点
- 三元表达式的值,必须要被使用。可以是赋值,可以是输出。
- 左边的接收变量的类型,一定要跟表达式1和表达式2的结果类型一致。
五、Java键盘录入和随机数
1、键盘录入
Scanner
- 导包:
import java.util.Scanner;
- 创建对象:
Scanner sc = new Scanner(System.in);
- 接收数据:
int number = sc.nextInt();
方法:nextInt() 获取输入的整数
2、随机数
Random
- 导包:
import java.util.Random;
- 创建对象:
Random r = new Random();
- 接收数据:
int number = r.nextInt(10);
方法:nextInt(int x) 获取0至(x-1)的随机整数
六、Java流程控制语句
1、顺序结构
- 顺序结构是代码默认的执行顺序。就是从上往下,从左到右依次运行的。
2、分支语句
(1)if
- if的第一种格式
格式:
if(关系表达式){
语句体;
}
执行过程:
先计算关系表达式的值。
如果关系表达式为真,则执行if的语句体1.
如果关系表达式为假,则执行else的语句体2
如果if后面的大括号不写,那么默认只能控制距离他最近的那一条语句
- if的第二种格式
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行过程:
先计算关系表达式的值。
如果关系表达式为真,就执行大括号里面的语句体。
如果关系表达式为假,就不会执行大括号里面的语句体。
-
if的第三种格式
格式:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
...
else{
语句体n + 1;
}
执行过程:
先计算关系表达式1,如果为真,执行语句体1,执行完毕整个if停止。
如果关系表达式1位假,那么计算关系表达式2,如果为真,执行语句体2
…
如果所有的关系表达式都是假,才执行到else里面的语句体。
(2)switch
- 格式
switch(表达式){
case 值1:
语句体;
break;
case 值2:
语句体;
break;
...
default:
语句体;
break;
}
-
注意事项
表达式的结果必须是:byte short int char 枚举(JDK5) 字符串(JDK7)
case后面的值不能重复
case后面的值只能是常量不能是变量 -
case穿透
如果case里面没有写对应的break,继续执行下面case中的语句体,一直遇到break或者右大括号才停止。
3、循环语句
(1)for循环
for(1.初始化语句;2.条件判断语句;3.条件控制语句){
4.循环体;
}
运行过程:
第一次循环:1 2 4 3
第二次循环: 2 4 3
第三次循环: 2 4 3
第四次循环: 2 4 3
....
第N次循环: 2(false)停止
- 初始化语句:理解为循环的开始条件。
- 条件判断语句:理解为循环的结束条件。
- 循环体:每次循环做的事情。
- 循环控制语句:每次循环之后,变量如何改变。
(2)while循环
- 基本格式
while(条件判断语句){
循环体;
}
- 完整格式
初始化语句;
while(条件判断语句){
循环体;
条件控制语句;
}
-
执行过程
先执行初始化语句,然后执行条件判断语句。
如果为假,整个while全部停止。
如果为真,进入大括号执行循环体。
当大括号里面的循环体执行完毕,执行条件控制语句。
当条件控制语句执行完毕,回到条件判断语句处,再次进行判断。
(3)do_while循环
- 完整格式
初始化语句
do{
循环体;
条件控制语句;
}while(条件判断语句);
-
执行过程
先执行初始化语句,
再执行循环体,
再执行条件控制语句。
再执行条件判断语句,如果为假,整个循环停止。如果为真,回到循环体中,继续运行。 -
特点
不管条件判断是真,还是假,循环体至少执行 一次。
(4)三种循环的区别
-
do…while跟其他两种循环的区别
- do…while是先执行后判断。
- 其他两种循环是先判断后执行。
-
while和for的区别
- 在标准语法结构中,初始化变量的生命周期有区别。
for循环的初始化变量,是属于for循环语法结构的,当for循环结束之后,这个变量也会消失。
while循环的初始化变量,是定义在外面的,不属于while的语法结构,所以循环结束还是可以继续使用。 - 当知道循环的次数或者循环的范围时,我们更多的会用for循环。
当不知道循环的次数或者范围,但是知道循环的结束条件时,此时用while循环。
- 在标准语法结构中,初始化变量的生命周期有区别。
(5)无限循环
- 又叫死循环,就是循环停不下来。
- for循环的死循环
for(;;){
循环体;
}
/**
*初始化语句空着:表示循环之前不定义任何变量。
*条件判断语句空着:表示默认为true
*条件控制语句空着:表示循环结束之后,变量不做任何修改。
*小括号中的三条语句,都是可以空着的。但是分号不能省。
*/
- while循环的死循环
while(true){
循环体;
}
//小括号中,不能空着,如果是无限循环,必须手动写上true
- do…while循环的死循环
do{
循环体;
}while(true);
//基本用不到
4、跳转控制语句
(1)continue关键字
- 只能写在循环中。
- 表示:结束本次循环,继续下次循环。
(2)break关键字
- 可以写在switch当中,也可以写在循环当中。
- 表示:结束整个语句。
本文地址:https://blog.csdn.net/hdd_canliang/article/details/111998080