一.选择流程控制语句
1.顺序结构
程序自上而下,依次执行
2.if语句
1)if语句的格式1
if(关系表达式){
语句体;
}
public class IfDemo1 {
public static void main(String[] args) {
System.out.println("aaa");
if(true){
System.out.println("这是if语句体");
}
System.out.println("bbb");
}
}
①条件表达式如果是true ,则执行语句体, 如果条件表达式为false ,则不执行语句体.
2)if语句的格式2
if(关系表达式){
语句体1;
} else {
语句体2;
}
如果关系表达式是true,执行语句体1; 如果关系表达式为false,执行语句体2;
注意: 不管怎么样,都会执行其中一条语句.
3)if语句的格式3
if(条件表达式1){
语句体1;
} else if(条件表达式2){
语句体2;
} else if(条件表达式3){
语句体3;
} ...
}else {
语句体n+1;
}
if语句格式3从上向下依次判断,满足哪个就执行哪个语句体的内容,如果都不满足,则执行else的内容
其他情况
if(条件表达式1){
语句体1;
} else if(条件表达式2){
语句体2;
} else if(条件表达式3){
语句体3;
}
如果所有的条件表达式都为false,则所有语句体都不执行.
2.switch语句
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n;
break;
}
表达式: 可以是什么值 byte short int char
JDK1.5 可以用枚举 JDK1.7 字符串
执行流程:
举例:
switch(123){
case 1:
语句体1;
break;
case 123:
语句体2;
break;
...
default:
语句体n;
break;
}
拿着表达式123去和case中的值进行匹配,如果匹配上,就执行该case中的语句体. 如果都没匹配到则执行default中的语句.
***注意事项:
switch后的表达式可以是变量,但是case后的值不能是变量,只能是常量.
case穿透
public class switchTest {
public static void main(String[] args) {
/*int a = 10;
int y = 0;
switch(a){
default:
y++; //y = 1;
case 1: 0 0 0 1 2 3
y++; // y = 2; 执行顺序:1–2–3–d–1–2
case 2:
y++; // y = 3;
break;
case 3:
y++;
}
System.out.println(y);*/y=3;
二.循环语句
1.for循环
作用:能够重读的执行某一段代码,提高了代码的效率.
格式:
for(初始化语句;判断条件; 循环控制语句){
循环体语句;
}
举例:
在控制台输出10句HelloWorld
for(int i = 0; i < 10 ; i++){
System.out.println("HelloWorld");
}
执行流程: 先执行初始化语句(int i = 0) 接下来执行 判断条件( i<10) ; 再执行循环体语句(System.out.println("HelloWorld");)
最后执行循环控制语句(i++); 然后再判断,如果为true就执行循环体...依次循环执行
注意:
初始化语句只执行依次.
特殊用法:(理解)
for (int i = 1,y = 0; i <= 10 && y <=100; i++,y++) {
System.out.println(i);
}
*2.使用whlie循环打印一个四行五列的星星
如下:
*****
*****
*****
*****
分析:
System.out.println(); 换行
System.out.print(); 打印不换行
使用循环嵌套来做
*/
public class WhlieDemo1 {
public static void main(String[] args) {
for(int i = 1 ; i <= 4 ;i++){ //控制行数, 一共有多少行
for (int j = 1; j <= 5; j++) { //该循环只打印 * 不换行
System.out.print("*");
}
System.out.println(); //只换行
}
System.out.println("------------------------");
int i = 1;
while(i <= 4){ //控制一共有多少行
int j = 1;
while(j <= 5){
System.out.print("*");
j++;
}
System.out.println();
i++;
}
}
}
2.while 循环
格式:
while(条件判断语句){
循环体语句;
}
扩展格式:
初始化语句;
while(条件判断语句){
循环体语句;
控制循环语句;
}
do..while循环
格式: 初始化语句; do { 循环体语句; 控制循环语句; }while(判断条件); 举例: int i = 0; do { System.out.println("abc"); i++; }while(i<10);
4.三种循环的区别
for、while 和 do...while() 的区别: for、while 先判断,如果为true再执行循环语句; do...while() 先执行,再判断.
for循环和while循环的区别:
for(int i = 0; i < 10; i++){ //i的作用范围是 () 和 {}
System.out.println(i);
}
System.out.println(i); //for循环这个是有误的
int i = 0;
while(i < 10){
System.out.println(i);
i++;
}
System.out.println(i); // while循环这个是正确的
注意: for循环和while循环是能相互切换的
int i = 0;
for(; i<10 ;){
System.out.println(i);
i++;
}
System.out.println(i); // while循环这个是正确的
三: 循环控制语句(break continue)
1.break
使用场景: switch 和 循环语句中
使用在switch中作用是退出switch语句; 使用在循环语句中结束循环.
2.continue
使用场景: 循环语句中
作用: 结束本次循环,继续下一次循环.