一.总述
java中的流程控制主要讲的是分支语句和循环语句。
二.if分支语句
1.if分支语句
if 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
if 四种形式:单分支、双分支、多分支、嵌套if
下面说说if的四种形式。
(1)单分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}
(2)双分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}else {
//布尔表达式为false时需执行的代码;
}
(3)多分支(多分支——多个语句块中只执行一个语句块:)
if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false但是布尔表达式2为true时执行的代码
}else if(布尔表达式3){
//布尔表达式1和布尔表达式2为false但是布尔表达式3为true时执行的代码
}else{
//布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码
}
(4)嵌套if(一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性)
if(布尔表达式1){
//布尔表达式1为true时执行的代码
if(布尔表达式2){
//布尔表达式1和布尔表达式2均为true时执行的代码
}else{
//布尔表达式1为true,但布尔表达式2均为false时执行的代码
}
}else {
//布尔表达式1为false时执行的代码
}
if语句的注意点有两点:
1.注意:if分支语句中去掉括号,则对第一行代码有效。
如下:
public class IfTest {
public static void main(String[] args) {
int i=3;
if(i==2)
System.out.println("代码1");
System.out.println("代码2");
}
}
只输出代码2
2.
public class IfTest {
public static void main(String[] args) {
int i=3;
if(i==2)
System.out.println("代码1");
//System.out.println("代码2");//该行代码注释去掉程序能编译吗?
else
System.out.println("代码3");
}
}
此时输出结果为“代码3”;
若把已注释代码还原,则编译出错,如图:
因为else不能单独使用。
三.switch语句
1.switch常见用法
switch ( 表达式 ) {
case 常量1 :
当表达式的值等于整型常量1时执行的语句;
break;//当一种情况包含其他情况时
case 常量2 :
当表达式的值等于整型常量2时执行的语句;
break;
......
default:
当表达式的值不满足任何一个case的值时,执行的语句;
}
2.实例代码运行:
(1)
public class SwitchTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
case 2 :
System.out.println("代码2");
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
运行结果:
代码1
代码2
代码3
代码4;
(2)
public class BreakTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
break;
case 2 :
System.out.println("代码2");
break;
default :
System.out.println("代码3");
}
System.out.println("代码4");
}
}
运行结果:
代码1
代码4
这说明:break用于结束其所在当前switch语句块程序的运行,但不会影响其所在语句块外部代码的执行。
(3)
public class SwitchTest {
public static void main(String[] args) {
int i=1;
switch(i){
case 1 :
System.out.println("代码1");
return;
case 2 :
System.out.println("代码2");
return;
default :
System.out.println("代码3");
}
//System.out.println("代码4");//去掉前面注释,该行代码会执行吗?
}
}
结果:代码1
这说明:return只结束所在方法的运行。
(4)一个注意点:
public class ReturnTest {
static{
System.out.println("show方法");
return;
}
public static void main(String[] args) {
System.out.println("main方法");
}
}
编译出错,是因为return不能用在代码块中。
三.循环语句
1.for循环结构
2.while循环结构
3.do-while结构
4.关于continue:
continue用于结束当前循环进入下次循环。
public class LoopTest {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
if (i == 1) {
continue;
}
System.out.println("in code"+i);
}
System.out.println("out code");
}
}
输出结果:
in code0
in code2
out code