关于流程控制的学习大致分为两个内容,分支语句和循环语句。
一、分支语句:
if分支语句:
if 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
if 四种形式:单分支、双分支、多分支、嵌套if
单分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}
双分支
if (布尔表达式) {
//布尔表达式为true时需执行的代码;
}else {
//布尔表达式为false时需执行的代码;
}
多分支——多个语句块中只执行一个语句块
if(布尔表达式1){
//布尔表达式1为true时执行的代码
}else if(布尔表达式2){
//布尔表达式1为false但是布尔表达式2为true时执行的代码
}else if(布尔表达式3){
//布尔表达式1和布尔表达式2为false但是布尔表达式3为true时执行的代码
}else{
//布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码
}
(if …else if…else if…else与if…if…if…else的区别是:
在if…if…if…else中如果有两个if中的条件都满足了,那这两个语句都会执行,在if …else if…else if…else中只会执行一个)
嵌套if——一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性
if(布尔表达式1){
//布尔表达式1为true时执行的代码
if(布尔表达式2){
//布尔表达式1和布尔表达式2均为true时执行的代码
}else{
//布尔表达式1为true,但布尔表达式2均为false时执行的代码
}
}else {
//布尔表达式1为false时执行的代码
}
注意:if分支语句中去掉括号,则对第一行代码有效。
public class IfTest {
public static void main(String[] args) {
int i=3;
if(i==2)
System.out.println(“代码1”);
System.out.println(“代码2”);
}
}
注意:else不能单独使用。
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”);
}
}
switch分支语句
switch分支语句语法:
switch ( 表达式 ) {
case 常量1 :[{]
当表达式的值等于整型常量1时执行的语句;
break;//当一种情况包含其他情况时
[}]
case 常量2 :[{]
当表达式的值等于整型常量2时执行的语句;
break;
[}]
—
default:[{]
当表达式的值不满足任何一个case的值时,执行的语句;
[}]
}
说明:上面中括号代表可有可无。
在这要注意break用于结束其所在当前switch语句块程序的运行,但不会影响其所在语句块外部代码的执行。就是break只结束其所在当前switch语句块程序的运行。
return用于结束其所在方法的运行,return只结束其所在方法的运行,return不能用于代码块中。
二、循环语句
for循环结构
for ( int i = 0 ; i < 100 ; i++ ) {
System.out.println(“我最棒”);
}
while循环
int i=0; //声明循环参数
//循环20次,每次输出20个*号
while(i < 2){ //循环条件为i<20
System.out.println(“****“);
i++; //循环参数+1
}
特点:先判断,再执行
do-while循环
do {
循环操作
} while ( 布尔型循环条件 );
特点:先执行,再判断,至少会执行一次。
比较while和do-while
while循环和do-while循环的区别:
语法不同:
while ( 循环条件 ) {
循环操作(先判断,再执行)
}
do {
循环操作(先执行,再判断)
} while( 循环条件 );
执行过程不同:如果循环条件不满足,while循环一次都不会执行;do-while循环不管任何情况都至少执行一次。
关于break,return,continue的用法:
break
public class LoopTest {
public static void main(String[] args) {
for(int i=0;i<3;i++){
if(i==1){
break;
}
System.out.println(“in code”);
}
System.out.println(“out code”);
}
}
public class Test {
public static void main(String[] args) {
if(1==1){//break可以用在if语句中,但是if语句必须在循环或switch分支语句中
break;
}
}
}
return
public class LoopTest {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
if (i == 1) {
return;
}
System.out.println(“in code”);
}
System.out.println(“out code”);
}
}
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”);
}
}
三者的区别:
1、break用于结束其所在当前循环语句块程序的运行,但不会影响其所在语句块外部代码的执行。
(break可以用在if语句中,但是该if语句必须在循环或switch分支语句中)
2、return用于结束其所在方法的运行。
(return可以单独使用在if分支语句中。)
3、continue用于结束当前循环进入下次循环。
(continue可以用在if语句中,但是该if语句必须在循环或switch分支语句中)