流程控制
顺序结构
严格从上往下,从左到右执行
分支结构
通过某个判断条件,选择性执行某一个分支语句
- if…else…
第一种结构 : 有不执行情况
if( boolean表达式 ){ 表达式为true 就执行java代码 为false就不执行
java代码;
java代码;
}
第二种结构 : 没有不执行情况
if( boolean表达式 ){ 表达式为true 就执行java代码1 为false就执行 else 中 java代码2
java代码1;
java代码1;
}else{
java代码2;
......
}
第三种结构 : 有不执行情况
if( boolean表达式 ){
java代码1;
java代码1;
}else if( boolean表达式 ){
java代码2;
......
}
第四种结构 : 没有不执行情况
if( boolean表达式 ){
java代码1;
java代码1;
}else if( boolean表达式 ){
java代码2;
......
}else{
.....
}
- switch语句
jdk1.7之前 只能传入 int整型(能传入整型,也就可以传入 byte,short,char,自动类型转换)
jdk1.7开始,包括jdk1.7,可以传入 字符串
语法 :
switch( 值 ){
case 值 :
java代码;
......
break;
case 值 :
java代码;
......
break;
case 值 :
java代码;
......
break;
default :
java代码;
}
default 可以没有,如果没有的话,就有不执行的情况;如果所有的case 都不符合条件,就执行default
注意 break : 必须要写,如果不写 就会发生case穿透现象
循环结构
- for循环:计数循环,在某个计数范围内,重复执行某些代码
循环三要素:初始值,终止条件,步长,缺一不可
语法 :
for( 表达式1 ; 表达式2 ; 表达式3 ){
// 循环体
java代码;
}
表达式1 : 初始条件
表达式2 : 终止条件
表达式3 : 步长
①先执行表达式1,并且只执行一次
②执行表达式2,结果必须是boolean型,如果是true,就执行循环体,如果是false就终止循环
③执行完表达式3之后,再执行表达式2,如果是false 终止循环,如果是true 执行循环体,执行表达式3 , 执行表达式2 …
for括号里可以什么也不写,分号必须写
for(;;){
java代码;
}
如果在循环外想要访问i,需要把i的作用域提升
int i = 1;
for(;i<10;i++){
java代码块;
}
在循环内声明的变量只能在循环体用,不同的循环体可以定义相同的变量
for(int i = 1;i<10;i++){
java代码块;
}
for(int i = 1;i<10;i++){
java代码块;
}
嵌套循环:外层循环执行一次,内层循环执行一圈
for(int i = 1;i<10;i++){
for(int j = 1;j<10;j++){
java代码块;
}
}
- while循环
while循环 是真假循环,在某个条件为真的情况下执行
语法 :
while( boolean表达式 ){
循环体;
}
如:
int i = 0;
while(i<10){
java代码块;
i++;
}
- do…while…循环
while 有不执行情况,所以执行次数是 0~N次
do...while... 能够保证代码 至少执行一次, 1~N次
语法 :
do{
}while(boolean表达式);
如:
int i = 0;
do{
java代码块;
i++;
}while(i<10);
- break,continue的使用
break语句:
① 用于switch中,结束分支语句,避免发生case穿透
② 用于循环中,终止当前循环
break 结束循环
continue 跳过当前次,继续下一次
return 结束方法,并返回一个数据
break:
//用于switch...case...
char c = 'A';
switch(c){
case 'A':
java代码块;
break;
case 'B':
java代码块;
break;
}
//用于循环
for (int i = 0; i < 10; i++) {
// 使用场景 : 比如在一堆数据中,查找某一个数据,当找到之后,就没有必要再继续循环了,可以使用break终止该循环
if (i == 5) {
// 只能终止距离它最近层循环
break;
}
System.out.println(i);
}
}
//break只能终止一层循环,想要终止其他循环,需要给其他循环起名字
outerFor:for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (j == 3) {
// 终止指定循环
break outerFor;
}
System.out.print(j+" ");
}
System.out.println();
}
continue:结束当前此次循环
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
// 0,1,2,4
System.out.println(i);
}