和其他程序设计语言一样,java使用条件语句和循环结构控制流程
java使用了C语言的所有流程控制语句,如果学习过C语言很好理解。
1.if分支结构
2.if-else双分支结构
3.if-else if-else 多分支结构
4.switch多选择结构
5.for循环
6.while循环
7.do-while循环
8.循环的嵌套
9.break语句和continue语句
---------------------------------------------------------------------------------------------------------------------------------
1.if单选择结构
if(布尔表达式){
语句块
}
所有条件语句都利用条件表达式的真或假来决定执行路径
若布尔表达式为真,则执行语句块,否则跳过该语句块。
if单分支结构流程图如下:
2.if-else双分支结构
if(布尔表达式){
语句块1
}else{
语句块2
}
若布尔表达式为真(turn)时,执行语句块1,若为假(false)时执行语句块2。
if-else双分支结构流程图如下:
3.if-else if-else 多分支结构
当表达式1为真时,则执行语句块1;若为假,则往下执行,判断布尔表达式2,当布尔表达式为真时,执行语句块2,若为假,则继续判断布尔表达式3........
if-else if-else 多分支结构流程图如下:
4.switch多选择结构
switch语法结构
switch(表达式){
case 目标值1:
语句序列1;
break;
case 目标值2:
语句序列2;
break;
case 目标值3:
语句序列3;
break;
... ... ... ... ... ...
case 目标值n:
语句序列n;
break;
default:
默认语句;
break;
}
将输入的值依次和case后的值进行匹配,若匹配成功则执行当前case下的语句序列,遇到break则结束。
代码演示如下:
import java.util.Scanner;
public class Test003 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请您输入考试成绩:");
while (input.hasNextInt()) {
int score = input.nextInt();
switch (score / 10) {
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 10:
if (score == 100) {
System.out.println("满分");
break;
}
default:
System.out.println("您输入的成绩不合法");
}
}
}
}
这里要注意:用作判断的表达式必须是符合byte、short、int、char类型的表达式
而不能使用double、long、boolean,也不能使用字符串
switch表达式依次和每个case子句中的常量值相比较。若匹配成功,则执行case子句中常量值后的语句,直到break语句终止
case子句中的常量值不能相同,否则会报错
default子句可以省略不写
5.for循环
语法结构:
for循环语句是支持迭代的一种通用结构,由一个计算器或类似的变量控制迭代次数,每次迭代后这个变量将会更新。
for(初始化表达式;布尔表达式;迭代因子){
循环体;
}
for循环在第一次循环之前会进行初始化,然后执行布尔表达式,对布尔表达式进行判断,若为true时,则执行循环体,若为false,则终止循环;每次循环结束会执行一次“步进”。
for循环结构流程图如下:
代码演示:
6.while循环
语法结构:
while(布尔表达式){
循环体;
}
在循环刚开始时,会计算一次布尔表达式的值;而在语句的下一次迭代开始前会再计算一次。
while循环会反复进行条件判断,直到条件不成立,循环结束
while循环结构流程图如下:
7.do-while循环
语法结构:
do{
循环体;
}while(布尔表达式);
注意:while和do-while唯一的区别就是do-while中的语句至少会执行一次,哪怕第一次循环布尔表达式为false。
do-while循环会先执行循环体,哪怕条件为假,至少执行一次
do-while循环结构流程图如下:
8.循环的嵌套
一个比较典型的代码“九九乘法表”如下所示:
public class Test{
public static void main(String[] args) {
for(int i =1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i + "*" + j + "="+ i*j+" ");
}
System.out.println();
}
}
}
内部循环取决于外部循环 ,内部循环次数由i决定,外部循环最多进行9次,相当于外部循环把内部循环的结果打印了9次,
代码运行结果如下:
9.break语句和continue语句
1.break语句是写在循环里的,用于跳出一个循环或者结束一个循环。
代码演示:
public class Test009 {
public static void main(String[] args) {
for(int i =1;i<=10;i++){
if(i==5){
break;
}
System.out.println(i);
}
}
}
一个简单的考试成绩查询代码:
import java.util.Scanner;
public class Test009 {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.print("请您输入考试成绩:");
while(input.hasNext()) {
int score = input.nextInt();
switch (score / 10) {
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不及格");
break;
case 10:
if (score == 100) {
System.out.println("满分");
break;
}
default:
System.out.println("您输入的成绩不合法");
}
}
}
}
2.continue语句的作用是跳过本次循环,然后执行下一次循环条件的判断,仅结束本次循环。
演示代码如下:
public class Test009{
public static void main(String[] args){
for (int i=1;i<=6;i++){
if(i==3){
continue;
}
System.out.println(i);
}
}
}
代码运行结果如下:
if判断条件i==3时,满足条件,continue语句会跳过这次循环,然后继续执行



