一,运算符
1.算术运算符
- +, - , *, /
- %, 取余
- ++, --(符号在前,先计算,后使用;符号在后,先使用,在计算)
2.比较运算符
-
, < , >=, <=, ==, !=
3.逻辑运算符
- 与 : &, && (&&:短路与)
- 或:|,||(||: 短路或)
- 非:!
4.三目运算符
A ? B : C;
A为true,返回B;A为false,返回C.
5.赋值运算符
= (例:A = B;)
将B的值赋值给A;
二、流程控制
数学中的一种结构
1.顺序结构
main函数 从开始一句句的执行,代码从上到下一行行的执行
2.分支结构
- 单分支结构
// true:执行,fasle:不执行
if(boolean表达式) {
// 代码
}
- 双分支结构
if(boolean表达式) {
// 代码1
} esle {
// 代码2
}
- 多分支结构
if (conditions one) {
// 代码1, conditions one 为:true,执行代码1
} else if (conditions two){
// 代码2, conditions one 为:true,执行代码2
} .... {
} else {
// 代码n,前面所有conditions都不为true,执行代码n
}
- switch分支结构
switch ( key ) {
case value1: {
//代码 1
break;
} case value2:{
// 代码 2
break;
} ... {
....
} default {
// 默认代码
}
// j将key与从上到下依次与value1 到 value n比较,当key等于value相等时,执行对应代码块。
//如果遇到break,跳出switch分支,否则穿透case(不再比较case的值,直接执行后面case的值直到遇到break)
// defualt 可以没有。当所有value都不等于key是执行defult代码
// key 的数据类型是
- 嵌套分支结构
if (conditions one) {
if (conditions A) {
// 代码A
} else {
// 代码B
}
}
3. 循环结构
3.1 for循环
- 格式
for (开始条件;循环条件;变更操作) {
// 循环体
}
开始条件1:初始化条件
循环条件2:boolean表达式用于判断是否要执行循环体
更改条件3:更改循环条件的内容如:i++
循环体4:要循环的程序块
例:打印10到0
for(int i = 10; i>=0;i--) {
System.out.print(i +"\t");
}
- 执行顺序
开始条件1循环条件2,循环体4,更改条件3(然后执行2,3,4)循环执行直到不符合循环条件。开始条件1只执行1次。 - 循环次数
循环执行的次数取决于循环变量能取到的值的个数而不是取值的范围。
例如
// 打印,8 ,88,888,8888
// 从哪开始 8 到哪结束 8888 如何变化,i *10+8
for(int i = 8; i <= 8888; i=i*10+8) {
System.out.print(i + ",");
}
// 该循环变量的值的范围在[8,888],但只取到了4个值,所以循环执行4次
- 跳出循环
通过continue可以跳出本次循环,直接开启下次循环,而不用执行后面的循环体内容。
for(int i = 1;i < 101; i++) {
//1.提示并接收用户猜的数
System.out.println("请输入您猜的数字");
int input = new Scanner(System.in).nextInt();
//2.判断数字与88是否相等
if(input != 88) {
System.out.println("没猜对,请继续猜");
/**continue作用:结束本轮循环,直接开始下次循环,continue后面的循环体语句都不再执行了
* 2.它可以让程序的效率更高,如本题中,数字不是88,后面的程序没必要执行了 */
continue;
}
System.out.println("测试continue的作用");
if(input == 88) {
System.out.println("恭喜你才对了!");
break;/**用于结束循环*/
}
}
System.out.println("测试break的作用");
通过break;可以跳出循环;不再执行
for(int i = 1;i < 101; i++) {
//1.提示并接收用户猜的数
System.out.println("请输入您猜的数字");
int input = new Scanner(System.in).nextInt();
//2.判断数字与88是否相等
if(input != 88) {
System.out.println("没猜对,请继续猜");
/**continue作用:结束本轮循环,直接开始下次循环,continue后面的循环体语句都不再执行了
* 2.它可以让程序的效率更高,如本题中,数字不是88,后面的程序没必要执行了 */
continue;
}
System.out.println("测试continue的作用");
if(input == 88) {
System.out.println("恭喜你才对了!");
break;/**用于结束循环*/
}
}
System.out.println("测试break的作用");
注意:continue和break的不能再跟语句了,他们一般都作为一个代码块的结尾部分。
- for循环一般用于要执行固定次数的循环。
- 嵌套循环
// 格式
// 1~3
for(int i = 1; i <= 3;i++) {
System.out.println(i);
//1~5
for(int j = 1; j <= 5; j++) {
System.out.print(j);
}
System.out.println();
}
//外层循环用于控制循环的轮数,内层循环用于控制次数
外层循环用于控制循环的轮数,内层循环用于控制次数
外层循环用于控制行数,内层循环用于控制列数
3.2 while循环
while (循环条件) {
// 循环体
}
3.3 do while循环
do {
// 循环体
} while(循环条件);
while循环与do while循环的区别是do while循环至少要执行1次循环体
3.4 跳出循环
循环中可以通过关键字continue
跳出本次循环,执行下一次循环
通过关键字break
结束循环
在嵌套循环中:可以通过标签和continue关键字组合跳到指定循环位置
continue和break的不能再跟语句了,他们一般都作为一个代码块的结尾部分。
例:
label:
for (int i = 0; i < 3; i++) {
System.out.println("i = " + i);
for (int j = 0; j < 10; j++) {
if (j == 5) {
continue my;
}
System.out.println("j = " + j);
}
}
3.5 三种循环的比较
1.for循环多用于知道循环次数的循环
2.while与do while多用于不了解具体循环次数的循环
3.while与do while区别是while可能一次不执行,do while 最少执行一次