1. 顺序结构:代码从上到下,按顺序执行
没啥说的。
2. 分支结构:多选一,选择结构
if语句
①if(表达式结果是布尔类型){
结果为true才会执行的语句;
}
②if(表达式结果是布尔类型){
结果为true才会执行的语句;
}else{
结果为false才会执行的语句;
}
③if(表达式结果是布尔类型){
结果为true才会执行的语句;
}else if(表达式结果是布尔类型){
结果为true才会执行的语句;
}else if(表达式结果是布尔类型){
结果为true才会执行的语句;
}else{
结果false才会执行的语句;
}
总之,满足哪个条件,就进入哪个方法体去执行,如果满足好几个,优先执行最近的,就近原则。
package project01;
public class Test {
public static void main(String[] args) {
int a = 5;
if (a > 1){
System.out.println("1");
}else if (a > 2){
System.out.println("2");
}else if (a > 3){
System.out.println("3");
}else{
System.out.println("else");
}
//三元运算
System.out.println(a > 1 ? (1) : (a > 2 ? (2) : (a > 3 ? (3) : ("else"))));
}
}
1
1
Process finished with exit code 0
其他:
三元运算符又叫简写的if-else。
int a = 5;
a > 1 ? (1):(a >2 ? (2):(a > 3 ? (3)“else”)));
a > 1 ? 左: 右; 就此例子而言,a > 1 满足返回true,所以执行 :(冒号) 左边的,若返回false,执行右边的,同理嵌套进去。
switch-case语句
①switch(表达式){
case 常量1:语句;break;
case 常量2:语句;
case 常量3:语句;
case 常量4:语句;break;
default:语句;
}
package project01;
public class Test {
public static void main(String[] args) {
int a = 2;
switch (a){
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
// break;
case 3:
System.out.println(3);
break;
default:
System.out.println("else");
}
}
}
2
3
Process finished with exit code 0
注意:
1.switch具有穿透现象,就是当符合条件是=时,如果没有break进行中断,就会自动从常量1执行到底。
2.default是当以上都不满足时执行,类似于else。
3.小括号里面可以是byte,short,char,int,String(1.7jdk) 枚举.
3. 循环结构:反复执行的操作
while
while(表达式返回布尔类型){
表达式返回true执行的语句;
}
只有表达式返回的是true,就会一直循环,返回false才会停止。
package project01;
public class Test {
public static void main(String[] args) {
int a = 5;
while (a > 2){
System.out.println(1);
a--;
}
}
}
1
1
1
Process finished with exit code 0
当a > 2 只要返回true,就会打印1,a–让a每次减1,直到a > 2 不成立返回false,停止循环打印。
注意:
只有表达式满足为true,才会执行{ }里面的语句;而下面要说的do-while,不管表达式是否满足为true,都会至少执行一次{ }里面的语句。
do-while
do{ }while(表达式返回布尔类型);
先执行do{ }里面的语句,再用while判断是否返回true,若是true再执行do{ },若是false,就不再执行。因为是后判断,所以无论条件是否成立,至少都会执行一次。
package project01;
public class Test {
public static void main(String[] args) {
int a = 5;
do {
System.out.println(1);
a--;
}while (a > 2);
}
}
1
1
1
Process finished with exit code 0
for
for(初始化表达式①;循环的判断语句②;初始化变量的自增③){
语句④;
}
执行顺序:①②④③。
先执行①,然后执行②判断是否为true,
若为true,进入循环体执行④,④执行完后执行③,然后再执行②判断是否为true,若还是true,再进入循环体执行④,若是false,就跳出循环。
若是false,跳出循环。
注意:
1> ①只执行一次;
2> ③表达式是自增也可以是自减。
循环中断:
break:中断循环。
continue:跳过本次循环,执行下一次循环。
package project01;
public class Test {
public static void main(String[] args) {
for (int a = 1;a < 6; a++){
if (a == 3)
continue;
System.out.println(a);
}
}
}
1
2
4
5
Process finished with exit code 0
上面代码可以看到3跳过,没有打印。
其他:
1.for(;{ } 死循环
2.for循环可以嵌套,一般外层表示行,内层表示列。
package project01;
public class Test {
public static void main(String[] args) {
for (int a = 1; a < 6; a++){
for (int b = 1; b < 4; b++){
System.out.print(b);
}
System.out.println(a);
}
}
}
1231
1232
1233
1234
1235
Process finished with exit code 0



