Java循环控制语句
顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:写在前面的先执行,写在后面的后执行
条件结构
if语句
if (布尔表达式)
{
代码块;
}
在执行时,判断布尔表达式的值,如果结果为true则执行下面的代码块,否则直接跳过代码块
if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略,建议永远不要省略
三种格式:
第一种:
if(条件表达式){
执行语句;
}
System.out.println();
举例:
int age = 17;
if (age >= 18)
System.out.println("可以浏览本网站");
System.out.println("完了");
第二种:
if(条件表达式){
执行语句;
}else{
执行语句;
}
举例:
int x = 1;
if (x == 1){
System.out.println(“男厕所欢迎您”);
}else {
System.out.println(“女厕所欢迎您”);
}
第三种:
if(条件表达式){
执行语句;
}else if (条件表达式){
执行语句;
}else{
执行语句;
}
举例:
int x = 1;
if (x == 1){
System.out.println(“男厕所欢迎您”);
}else if(x == 0){
System.out.println(“女厕所欢迎您”);
}else {
System.out.println(“无法识别您的性别”);
}
当判断条件为多种状态时,我们使用if-else-if来解决,但这不仅会使代码的编写非常繁琐,还会影响到代码的可读性
switch语句能够有效的避免这种情况所带来的冗长代码
switch语句
switch (表达式)
{
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
…
default :
代码块n;
break;
}
switch语句
在switch语句执行时,首先计算表达式的值,然后将其与case后的常量依次进行比较,
如果找到相匹配的值,则进入到该常量下的代码块执行,
直至遇到break结束整个switch语句。
如果常量中没有找到匹配值,则进入到default代码块执行。
在这里我们需要注意的是,虽然break语句不是必须的,但在执行过程中,如没有遇到break,将继续执行一下case后的代码块,直至break或整个switch语句结束
switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串String(JDK7之后支持)
case子句中的值必须是常量,且所有case子句中的值应是不同的;
default子句是任选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;
switch执行过程
一、计算
二、找case
三、从找到的case开始,往下全部执行,直到遇到break结束switch语句
四、若没找到case,则从default开始往下全部执行,若没default则结束switch语句。
switch结束的两种情况
1,当程序执行过程中遇到了break
2,当程序执行到了末尾处
switch语句需要注意的两个细节
1,当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进 行判断, 应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break
while循环
格式:
while (条件表达式){
循环体;
}
例如:
int x = 3;
while (x<6){
System.out.println(“x=”+x);//循环体
x++;//用x自增来控制循环次数
}
do while 循环
格式:
do{
循环体;
控制循环次数
}
while (条件表达式);
do-while循环的执行过程
1. 执行循环体,循环体执行完后,转向2
2. 判断循环条件,如果条件为true,则转向1;如果条件为false,则转向3
3. 跳出循环,循环结束
例如:
int x = 3;
do{
System.out.println(“x=”+x);//循环体
x++;//用x自增来控制循环次数
}
while (x<6);
while和do while的区别:
1)do…while循环至少会执行一次循环体;
2)while循环只有在条件成立的时候才执行循环体。
也可以这样表述:do…while先执行后判断,while先判断后执行
For循环结构
for循环语法格式
for (初始表达式; 条件表达式; 迭代表达式)
{
循环语句;
}
初始表达式是在for循环首次执行时要计算的表达式。通常,这里会为一个循环变量初始化一个值
条件表达式(循环条件)用于每次循环前的条件判断,只有在条件表达式值为true时,才入到循环语句执行。
迭代表达式则在循环语句执行完成后进行计算,一般来说使用一个递增或递减的计数器作为迭代表达式,改变循环变量的值
for循环执行过程
1. for语句执行时,首先执行初始表达式(只是第一次执行),然后判断条件表达式的值,如为true则转向2,如为false则转向4。
2. 执行循环语句;循环语句执行完成,转向3
3. 计算迭代表达式,计算完,转向1。
4. 结束for循环
for循环的优点
在一个地方包括循环的全部规则,不是把几个语句放在代码的不同地方。使代码更易于阅读。适用于循环的开始和结束已知,循环次数固定的场合。
while循环多适用于循环次数不确定,仅需知道循环终止条件的场合
特殊流程控制语句
break 语句
break语句用于终止某个语句块的执行,最多使用的是跳出当前的整个循环
{
……
break;
……
}
continue 语句
continue语句立即终止当前循环,继续执行下一次循环
continue语句用在for循环中也是终止当前循环,继续执行下一次循环
小结
while()加循环条件,一但条件不满足就不执行语句。先判断后执行。适用于循环次数不确定,仅需知道循环终止条件的场合
do-while(),判断条件满足则执行语句,条件不满足时退出循环,但是do-while()是先执行后判断,所以至少要做一次循环
for(定义循环初始条件;循环退出条件;参数自加)。适用于循环的开始和结束已知,循环次数固定的场合