1. 运算符
1.1. 赋值运算符
= : 把左边的数据赋值给右边
+= : 左边加右边,然后把结果赋值给左边
-= : 左边减右边,然后把结果赋值给左边
*= : 左边乘以右边,然后把结果赋值给左边
/= : 左边除以右边,然后把结果赋值给左边
赋值运算属于又结合 , 同优先级从左到右计算
byte x = 2;
byte y = 127;
y++;
x = (byte) (x + y);
// 以上运算符可以自动进行数据类型转换
x+=y;
1.2. 字符串拼接
1.2.1. 转义符
\ : 转义符 , 把有意义的字符转换为无意义字符
字符中出现的单引号 需要转义
char c = '\'';
字符串中出现双引号 需要转义
char c = '\"';
如果出现转义符,则需要写两个转义符\\ , 用转义符把转义符转成无意义字符
char c='\\';
1.2.2. 字符串拼接
+如果两边是数字 , 则为加和运算
+如果两边有字符串 , 则为字符串 拼接符 , 用于把多个数据拼接成一个字符串
数字转字符串可以和空字符串相加
1.3. 三目运算符
三目运算符又叫三元运算符
语法 : 布尔型 ? 真语句 : 假语句;
int num = 22121;
String result = num % 2 == 0 ? "偶数" : "奇数";
System.out.println(result);
三目运算符也可以进行嵌套
int a = 1;
int b = 2;
result = a>b ? "大于" : (a==b ? "等于" : "小于");
System.out.println(result);
2. 流程控制
2.1. 顺序结构
编写的代码 , 默认就是从上往下从左往右执行
2.2. 分支结构
根据不同的条件 , 执行不同的分支代码
2.2.1. if...else...
单分支
语法 : if ( 布尔型 ){ 代码 }
单分支不符合条件就不会执行
双分支
语法 : if ( 布尔型 ){ 符合条件的代码 } else { 不符合条件的代码 }
多分支
语法 : if( 布尔型 ){ 代码 } else if (布尔型){}.....
多分支其中一条语句执行者真整个多分支结束
2.2.2. Switch
语法 : switch(int/String){ case 值 : 代码 break; ..... }
char key = 'E';
if (key == 'A') {
System.out.println("优秀");
} else if (key == 'B') {
System.out.println("良好");
} else if (key == 'C') {
System.out.println("及格");
} else if (key == 'D') {
System.out.println("差");
} else {
System.out.println("重修");
}
break 必须要加,否则会发生case穿透
也可以利用case穿透达成合并的效果
switch(key) {
case 9:
case 10:
System.out.println("优秀");
break;
case 7:
case 8:
System.out.println("良好");
break;
case 6:
System.out.println("及格");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
System.out.println("成绩输入错误");
2.3. 循环结构
循环结构:重复执行某段代码
for 计数循环,执行0~N次
while 真假循环,执行0~N次
doWhile 真假循环,但是保证至少执行一次,执行1~N次
2.3.1. 循环三要素
起始值
终止条件
步长
2.3.2. for
2.3.2.1. 循环基础
语法 : for( 起始值; 终止条件 ; 步长 ){ 循环体,需要重复执行的代码 }
执行过程 : 先执行起始值,并只执行一次 , 然后执行终止条件,终止条件必须是布尔型,如果是false,则终止循环;如果是true,则执行循环体,然后执行步长,再次执行终止条件,如果是false,则终止,如果是true,则执行循环体,然后执行步长,以此类推,一直到 终止条件 为false 终止
循环外的语句无法调用循环内的变量---如果需要用到循环中的变量,则需要提升作用域
2.3.2.2. 嵌套循环
外层循环 执行一次,内层循环执行一轮
for (int i = 0; i < 5; i++) {// 外层循环相当于 表中的行
for (int j = 0; j < 5; j++) { // 内层循环相当于 表中的列
System.out.print(j+" ");
}
// 换行
System.out.println();
}
2.3.3. while
while 真假循环,当某个条件为真,执行,执行次数为0~N次
语法 : while(布尔值){循环体}
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码:");
int password = scanner.nextInt();
while (password != 1234) {
System.out.println("密码不正确,请重新输入(1234)");
password = scanner.nextInt();
}
System.out.println("登陆成功");
2.3.4. doWhile
doWhile 真假循环,保证代码至少执行一次,次数为1~N次
语法 : do{循环体}while(布尔型)
int i = 10;
do {
System.out.println(i);
i++;
} while (i < 5);
2.4. 跳转语句
2.4.1. Break
break 的两种用法
1 用在switch中,用于结束分支,防止case穿透
2 用在循环中,用于结束近层循环
for (int i = 0; i < 10; i++) {
if (i == 5) {
// 终止循环
break;
// 跳过当前次循环,直接执行步长(i++)
// continue;
}
System.out.println(i);
2.4.2. continue
continent : 跳过当前次循环
for (int i = 0; i < 10; i++) {
if (i == 5) {
// 终止循环
// break;
// 跳过当前次循环,直接执行步长(i++)
continue;
}
System.out.println(i);
2.4.3. BreakOutfor
当出现在嵌套循环的场景中,continue和break 都默认操作内层循环
如果希望操作外层循环,则需要在外层循环前设置一个名称,然后 通过 break 名称 , continue 名称 来操作外层循环