1、概述
- 流程控制包含三种形式:
顺序结构
、选择结构
及循环结构
。
2、选择结构
2.1、多重if结构
用代码来说明多重if的优势,对比一下两种写法:
public class MultipleIf {
public static void main(String[] args) {
/*成绩大于等于90,输出"优";
大于等于80且小于90,输出"良";
大于等于60且小于80,输出"中";
小于60,输出"不及格".*/
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
if (score >= 90) {
System.out.println("优");
}
if (score >= 80 & score < 90) {
System.out.println("良");
}
if (score >= 60 & score < 80) {
System.out.println("中");
}
if (score < 60) {
System.out.println("不及格");
}
//用多重if来进行改写
if (score>=90) {
System.out.println("优");
}else if (score>=80) {
System.out.println("良");
}else if (score>=60) {
System.out.println("中");
}else {
System.out.println("不及格");
}
scanner.close();
}
}
2.2、嵌套if结构
- 嵌套if结构即将整个if块插入另一个if块当中。例子略。
2.3、switch语句
- if和switch的区别:
- if结构判断条件为
布尔类型
- if机构判断条件是一个
范围
- switch结构判断条件是
常量值
- if结构判断条件为
- switch结构
- break语句不是必须的;
- default语句可以省略;
- 若case里的常量和条件都不匹配,则执行default语句;
- 若无break语句则会顺序执行;
- 在JDK7.0以后,以下代码中表达式的值可以使基本数据类型的byte、short、int、char以及String类型。
switch (表达式) {
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
default:
语句3;
break;
}
3、循环结构
- 循环结构主要有
while循环
、do-while循环
、for循环
。 - while循环:当循环条件的值为true时就执行循环体中的语句,否则会跳出循环。
while (循环条件) {
语句;
}
- do-while
- do-while循环至少执行一次
- 循环条件后的分号不能丢失
do {
语句;
} while (循环条件);
- for循环
- for循环的执行顺序:按下图所示序号执行
for (表达式1;表达式2;表达式3) {
语句;
}
- for循环注意事项
- 如果省略表达式1,则需要在循环体外侧定义变量i;
- 如果省略表达式2,则该循环将永远执行下去;
- 如果省略表达式3,则需要在循环体内写上i++;
- 若三个表达式都省略,可以在循环体中写上替代语句(和while循环有点类似哈^_^)。
int i = 1;
for (;;) {
// ...
if (i == 10)
break;
i++;
}
4、 嵌套循环
- 以下为2重while循环,外面的循环称为外重循环,里面的循环称为内重循环
- 当然也可以是其他循环的嵌套,或者这几种循环的混合嵌套都是可以的。
while (循环条件) {
……
while (循环条件) {
……
}
……
}
- 下面使用嵌套while循环输出4行4列的星号。
- 1.编写以下代码:
public class NestedLoop {
public static void main(String[] args) {
int m=0,n=0;
while(m<4) {
//外重循环控制输出的行数
n=0;
while(n<4) {
//内重循环控制每行输出的星号数量
System.out.print("*");
n++;
}
System.out.println();
m++;
}
}
}
- 2.结果如下图所示。
- 3.改变内容为:
public class NestedLoop {
public static void main(String[] args) {
int m=0,n=0;
while(m<4) {
//外重循环控制输出的行数
n=0;
while(n<=m) {
//内重循环控制每行输出的星号数量
System.out.print("*");
n++;
}
System.out.println();
m++;
}
}
}
- 4.运行结果如下:
关于循环的练习可以参考百度经验的一篇文章: 如何用Java代码打印六种三角形
5、break语句与continue语句
- break语句:
- break语句可以结束当前循环的执行;
- 执行完break语句后,在循环体当中(
这个是前提
),位于break语句后面的语句就不会被执行; - 在多重循环汇总,break语句只向外跳一层。
- continue语句:
- 与break语句不同的是,continue语句只能用在循环里。
- continue语句可以结束当前循环的执行,但是要继续下一次循环的执行。
- 1.求
1+3+5+7+9的和
,代码如下,运行结果略。
public class ContinueDemo {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=9;i++) {
if (i%2==0) continue;
sum+=i;
}
System.out.println("sum="+sum);
}
}