符号 | 功能 | 例子 | 备注 |
---|---|---|---|
+ | 加法运算 | a=1+2; a=3; a=1+2.0;a=3.0 | |
- | 减法运算 | a=1-2;a=-1; | |
* | 乘法运算 | a=1*2;a=2; | |
/ | 除法运算 | a=1/2;a=0; a=1.0/2;a=0.5 | 如运算的两个数为整数,则求商,不带小数部分。若运算的数包含小数,则求出的值包含小数部分 |
% | 取模运算 | a=1%2;a=1; a=5%3;a=2 | 求余数,除法运算后取余数,参与运算的必须是整数 |
++a或者a++ | 自增运算 | a=0;a++;a=1;a=1;++a;a=2; | ++a前置自增,先自增后将值赋给a;a++后置自增,先赋值后再自增 |
–a或者a– | 自减运算 | a=0;a–;a=-1;a=1;–a;a=0; | 和自增类似 |
+= | 复合加法运算 | a=0;a+=1;a=1; a=6;a+=5;a=11 | a+=b等效于a=a+b |
-= | 复合减法运算 | a=0;a-=1;a=-1 | a-=b等效于a=a-b |
*= | 复合乘法运算 | a=0;a*=1;a=0 | a*=b等效于a=a*b |
/= | 复合除法运算 | a=1;a/=2.0;a=0.5; | a/=b等效于a=a/b |
%= | 复合取模运算 | a=1;a%=2;a=1; | a%=b等效于a=a%b |
- 关系运算符
关系运算符用于比较两个变量或表达式的值的大小关系。
在Java 中,关系运算结果值为bool 类型,包括“true”或“false”
运算符 | 功能 | 例子 | 备注 |
---|---|---|---|
> | 比较大于关系 | a=(1>2);a=false; | |
< | 比较小于关系 | (a=1<2);a=true; | |
>= | 比较大于等于关系 | a=(1>=2);a=false;a=(1<=2);a=true | 大于或者等于时为true,小于时为false |
<= | 比较小于等于关系 | a=(1<=2);a=true; | 小于或者等于时为true,小于时为false |
== | 比较等于关系 | a=(1==2);a=false | 等于时为true,小于或者大于时为false |
!= | 比较不等于关系 | a=(1!=2);a=true; | 相等时为false,不等时为true |
注意:==用来判断相等关系,并非用来赋值。赋值使用的是赋值符号 =
关系运算不改变操作数的值
- 逻辑运算符
使用关系运算符可以比较程序中两个值的大小关系,但在程序中经常需要从多个比较关系中得到综合判断的结果。
运算符 | 功能 | 例子 | 备注 |
---|---|---|---|
&& | 与运算,即同时成立,缺一不可 | true&&true =》true ;true&&false =>false;false&&true=>false;false&&false=>true | 运算符两边值为true时才为true |
或运算,即只要有一个值为true即成立 | |||
! | 非运算 | !true=false;!false=true | 取反运算 |
- 三目运算符
用来快速实现条件判断并根据条件返回不同的结果。
语法:布尔表达式?表达式1:表达式2
int a=布尔表达式?1:2; //表达式值为false 则a=2;表达式为true,a=1;
String name=布尔表达式?"张三":"李四";// 表达式值为false,则name=“李四”;表达式值为
true,则name=“张三”。
// 规则 在使用三目运算符做赋值运算时,若表达式值为true,则赋值内容为问号之后,冒号之前的数据。若表达式值为false,则赋值内容为冒号后的值。
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的年龄");
int age = sc.nextInt();
System.out.println(age>=18?"成年":"未成年");
条件结构
Java程序流程控制结构
顺序
条件
循环
执行流程图如下所示:
- 单分支if结构
当程序执行到分支判断的语句时,首先判断条件,然后根据条件表达式的结果选择相应的语句执行。
if(条件) {
//语句
}
1.条件表达式的值必须为boolean类型
2.条件为true时执行if内的代码
int a=0;
if(a>1){ //不会执行,因为a的值<1,故表达式值为false,无法进入if分支
a++;
}
- 双重分支结构 if-else
条件的结果为true,则执行if中的代码块1,条件的结果为false,则执行else中的代码块2。
if ( 条件 ) {
//代码块1
}else {
//代码块2
}
int num1=1,num2=3;
if(num1 >= num2) {
max = num1;
} else {
max = num2; //执行代码块2 因为num1值不大于也不等于num2值
}
- 多重分支结构 if-else if-else
多重if中条件表达式的顺序是有序的,要么从大到小,要么从小到大,总之是要有顺序地排列。条件不按顺序排列会出错。
if ( 成绩>=80) {
//代码块1
}
else if (成绩>=60) {
//代码块2
}
else {
//代码块3
}
多重分支结构,只要进入一个分支结构,则不会再进入其他分支结构
else if 可以有多个,但是要求分支结构中条件表达式的顺序要有序
if(score >= 90) { //考试成绩>=90
System.out.println("优秀");
} else if (score >= 80) { // 90 >考试成绩>=80
System.out.println("良好");
} else if (score >= 60) { // 80>考试成绩>=60
System.out.println("中等");
} else { //考试成绩<60
System.out.println("差");
}
- 嵌套条件结构
外层条件满足后才执行内层条件语句
if(条件表达式1){
if(条件表达式2){
语句块1;
} else {
语句块2;
}
} else {
if(条件表达式3) {
语句块3;
} else {
语句块4;
}
}
if(gender == ' 男 ') {
if(age>=18) {
System.out.println(" 可以报 A 类比赛项目 ");
}
else {
System.out.println(" 可以报 B 类比赛项目 ");
}
}
else {
System.out.println(" 可以报 C 类比赛项目 ");
}
嵌套条件结构,在使用时,一定要注意代码缩进和代码所处的分支结构。
- switch-case选择结构
通过表达式值与case 后的常量进行比较,如果相等则执行对应的case语句块,如果不相等,则往下继续匹配。如果所有的case找完,都没有相等的,则执行default默认的语句块。
switch (表达式) {
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;
… //case 语句块可以有多个
default:
语句;
break;
}
break关键字 用来结束switch分支机构
int no = 2; //成绩名次
switch(no) {
case 1:
System.out.println("奖励联想笔记本一台");
break;
case 2:
System.out.println("奖励移动硬盘一个");
break;
case 3:
System.out.println("奖励U盘一个");
break;
default:
System.out.println("没有任何奖励");
循环结构
- while循环
循环条件为布尔类型的表达式,值为true时,执行while语句块内的代码。为false则不执行,跳过while循环。
while(循环条件)
{
循环操作;
}
int count = 1; //循环计数器初始为1
while(count<=36) {//循环终止条件为达到36
System.out.println("复印第"+count+"份试卷"); //循环内容
count++;//改变循环条件,已复印试卷加1 //计数器累加
}
- do-while循环
相对于while循环,do-while循环将语句块放在了do的后面,即先执行一边循环语句块的内容之后再去做循环条件判断,如果值为true则继续执行do后的语句块,如果为false,则跳出循环。
do-while循环的语句块至少执行一次。
do
{
循环操作;
}while(循环条件);
int score;
Scanner input = new Scanner(System.in);
do {
System.out.println("学生参加考试!");
System.out.print("老师请输入学生考试成绩:");
score = input.nextInt();
} while(score<60);
System.out.println("恭喜你,考试成绩合格!");
- for循环
for(初始化循环变量表达式;条件判断表达式;更改循环变量表达式){
循环操作的内容
}
初始化循环变量表达式:用来声明和初始化循环遍历 如int i=0;
条件判断表达式:用来判断for循环的循环体是否执行,如果值为false则跳出for循环。如果值为true则执行for循环内的代码。如i<5;
更改循环变量表达式:更改循环变量的值,从而间接地改变条件判断表达式的结果。
执行顺序:
- 初始化循环变量
- 条件判断,判断是否执行循环操作的内容,如果为false则跳出for循环。如果为true,则到3
- 执行循环操作的内容
- 更改循环变量表达式执行
- 继续条件判断2,一直循环