程序基本结构
1.1 顺序结构
程序从上到下一行一行的执行代码,没有判断和中转。
1.2 选择结构
有选择性的执行或者跳过指定代码
1.3 循环结构
重复执行一段代码,直到条件不成立。
Java的选择结构使用选择语句来实现:
1 if语句
2 switch语句
if语句
if语句有四种使用形式:
- if(条件){…}
- if(条件){…}else{…}
- if(条件){…}else if(条件){…}else{…}
- if(条件){ if(条件){…} } else {…}
特殊的if语句(不推荐使用)
必须要求 if 或者 else 语句中只能有一条语句
if(score>60)
System.out.println(“有奖励”);
else
System.out.println(“啥都没有”);
switch语句
switch只适合做等值判断。
语法结构:
switch(表达式){
case 常量1:
代码块1;
break;
case 常量2 :
代码块2;
break;
case 常量3 :
代码块3;
break;
...
default:
默认代码块;
break;
}
switch语法规则:
- 表达式expr的值必须是下述几种类型之一:
byte、short、int、char、enum(枚举);java7之后可以是String。
- case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
- 所有case子句中的值应是不同的,否则会编译出错;
- default子句是可选的(不是必须的)
- break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去
特殊用法 :case穿透
case穿透:由于某个case语句中缺少或者漏写break语句所导致的结果。
循环语句
- while 循环
- do/while 循环
- for循环
while循环
while (循环条件) {语句块(循环体)}
先判断循环条件表达式的值。若为true.则执行循环体,然后再次判断条件并反复执行,直到条件不成立为止。
特点:先判断再执行。
do-while循环
do {语句块} while(条件表达式) ;
先执行语句,再判断表达式的值,若为true,再执行语句,否则结束循环。
特点:先执行,再判断。
while 和 do-while的区别
1 执行过程不同
while 先执行循环条件,然后再执行循环体,一句话:先判断,再执行
do/while 先执行循环体 然后再执行循环条件,一句话:先执行,再判断
2 当第一次不满足循环条件的情况下 while循环不能执行循环体, do while 可以执行一次
for循环
for (表达式1 [循环变量初始化]; 表达式2 [循环条件判断]; 表达式3 [更新循环变量]){
循环体
}
首先计算表达式1,接着计算表达式2,若表达式2的值为true,则执行循环体,接着计算表达式3,再判断表达式2的值.依此重复下去,直到表达式2的值为false。
特点:先判断,再执行。
for(int i = 0;i<3;i++){
System.out.println("Hello World!");
}
打印100以内 能被4整除不到能被7整除的数据,每行打印6个
int count = 0;
for(int i = 1; i<=100; i++){
if(i%4==0 && i%7!=0){
System.out.print(i+"\t");
count++;// 6
if(count%6==0){
System.out.print("\n");
}
}
}
for循环的特殊形式
-
省略表达式2 表达式2一般不可省略,否则为无限循环(死循环)
for (int i=1; ; i++) sum=sum+i;
// 相当于条件永真、永不为false -
表达式3亦可省略,但在循环体中须有语句修改循环变量;以使表达式2在某一时刻为false而正常结束循环。
for (int sum=0,i=1 ;i<=100; ){
sum=sum+i;
i++;
} -
若同时省略表达式1和表达式3,则相当于while(表达式2)语句
int i=0;
for ( ; i<=100; ) {sum+=i; i++;} -
三个表达式均省略 即for(;;)语句,此时相当于while(true)语句.
跳转语句–流程控制语句
break: 语句用于终止某个语句块的执行
- 使用场合
- switch结构中:跳出(终止)switch语句
- 循环结构中:跳出(终止)循环
- 作用:退出switch和循环结构(如果有多重循环,默认跳出离自己最近的循环)
- 使用Lable标签实现跳出指定的循环
continue: 语句用于跳过某个循环语句块的一次执行,继续下一次执行(结束本次循环,继续下一次循环)
- 使用场合
- continue只能用在循环结构中
- 作用: 跳过本次循环,执行下一次循环(如果有多重循环,默认继续执行离自己最近的循环)。)
- 使用Label标签改变继续执行的循环