java 基础知识四 流程控制
Java流程控制
包括顺序控制、条件控制和循环控制
顺序控制就是逐条执行有if和switch两个分支
循环控制就是又称为回路控制,根据循环初始条件和终结要求,执行循环体内的操作
循环控制有三种while循环 do…while循环 for循环
while语句和for语句在循环语句中属于“先判断再循环”的结构,而do-while语句属于“先循环再判断”的结构
1、if语句
if 条件语句是最简单的条件语句,作为条件分支语句,根据条件选择一个或者多个执行语句,执行语句里面可以嵌套if语句
if(条件一){ //必须有
执行语句
}else if(条件二){ //可有可无可以有多个
执行语句
}else{ // 可有可无 最多只能有一个
执行语句
}
int number=2; //1 标准写法 if(number==1){ System.out.println("星期一"); }else{ System.out.println("不是星期一"); } // 2、省略写法 if(number==1){ System.out.println("星期一"); } // 3、多重分支 if(number==1){ System.out.println("星期一"); }else if(number==2){ System.out.println("星期二"); }else{ System.out.println("不是星期一也不是星期二"); } // 4、多重分支 省略 if(number==1){ System.out.println("星期一"); }else if(number==2){ System.out.println("星期二"); }
2、switch语句
switch语句处理多路分支问题,效果等同于多个else if
分支语句:switch case key:需要比较的表达式 value:与表达式进行比较的值
执行流程:如果key和value比较的结果为true,那么将执行case部分的代码,case部分可以有多个类似于else if 部分
说明:key和value之间的比较只能是== default部分是不满足以上任何去执行的代码,类似于else
switch (key) { // key 取值只能是整型或者可以转换为整型的数值类型或者枚举
case value: // case是常量表达式,value的取值只能是常量或者常量表达式
break;// 标识分支结束 可有可无如果没有break会直接进入下一个case语句
default: // 默认分支 可有可无
break;
}
switch (number) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; default: System.out.println("不是星期一也不是星期二"); break; }
3、while循环 和do while 循环
while语句不断执行块里的语句,当判定表达式为true的时候进入代码块,执行需要执行的代码否则跳过循环
do while 比while多执行一次执行语句,至少会执行一次
while (判定表达式) { //满足条件一直执行
执行语句
}
do{ // do while 比while 多执行一次执行语句,至少会执行一次
}while(判定表达式);
while(number<7){ System.out.println("一周之内"); number++; } do{ System.out.println("一周之内"); number++; } while(number<7);
4、for循环
通过初始化语句和迭代语句来判定是否满足循环条件 如果满足执行需要执行的代码否则跳过循环
for(初始化语句;循环条件;迭代语句){
循环体;
}
a、执行初始化语句
b、判断循环条件,如果循环条件为false,则结束循环,否则执行下一步
c、 执行循环体
d、执行迭代语句
e、跳转到步骤b重复执行
需要注意的是:for语句中的各个语句都可以为空,初始化语句在for语句执行时执行且只执行一次。
依据for语句的语法格式,则最简单的for语句是如下格式:for(;;);
由于循环条件为空时,默认为true,则循环条件恒成立
该循环的循环体即最后的一个分号,这样的语句称作空语句,则该循环是一个死循环,循环体是空语句。
for (int i = 0; i < 7; i++) { System.out.println("一周之内"); }
5、增强for循环
For-Each循环也叫增强型的for循环,或者叫foreach循环
For-Each循环的加入简化了集合的遍历。对比for循环,for-each丢失索引index信息
遍历集合中所有元素 type是集合元素类型 element临时变量 array 集合
for(type element: array)
{
System.out.println(element);
}
int[] arr = {1, 2, 3, 4, 5,6,7}; for(int element:arr) { System.out.println("星期"+element); }
6、跳出循环 break continue 和return
break语句主要有三种用途。第一,它可以用于跳出 switch语句。第二,break语句可以用于跳出循环。第三,可以用于大语句块的跳出
continue 语句主要是跳过单次循环的循环体,执行下次循环
return 结束循环所在的方法