-
流程控制语句
2020-12-24 10:46:39流程控制语句 控制语句即用来实现对程序流程的选择,循环,转向和返回等,用来控制程序中各语句执行顺序的语句,可以把语句 进行控制才能完成。 流程控制语句分类 顺序结果 分支结构 循环结构 顺序结构 顺序结构是...流程控制语句
控制语句即用来实现对程序流程的选择,循环,转向和返回等,用来控制程序中各语句执行顺序的语句,可以把语句 进行控制才能完成。
流程控制语句分类
- 顺序结果
- 分支结构
- 循环结构
顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,
分支结构之if语句
if单分支语句
格式: if (关系表达式){ 语句体; }
执行流程:
先计算关系表达式中的值
如果关系表达式的值为true执行语句体
如果关系表达式的值为false,不执行语句体
之后执行其他语句
public static void main(String[] args){ int a=10; int b=10; if(a==b){ System.out.println("a等于b"); } }
if-else 双分支语句
格式 if (关系表达式){ 语句体1; }else{ 语句体2; }
执行流程:
先计算关系表达式的值
如果关系表达式的值为true,执行语句体1
如果关系表达式的值为false,执行语句体2
之后执行下面的语句
例:
public static void main(String[] args){ int a=5; if(a%2==0){ System.out.println("i为偶数"); }else{ System.out.println("i为奇数"); } }
if-else 多分支结构
格式 if(关系表达式){ 语句体1; }elseif(关系表达式2){ 语句体2; }...else{ 语句体n+1; }
执行流程:
先计算关系表达式的值如果值为true执行语句体1;如果值为false计算关系表达式2的值
如果值为true执行语句体2;如果值为false计算关系表达式3的值
…
如果没有任何表达式为true,执行语句体n
import java.util.Scanner; public class Test { public static void main(String args[]){ Scanner in-new Scanner(System.in); int x=in.nextInt(); if( x == 10 ){ System.out.print("Value of X is 10"); }else if( x == 20 ){ System.out.print("Value of X is 20"); }else if( x == 30 ){ System.out.print("Value of X is 30"); }else{ System.out.print("这是 else 语句"); } } }
switch语句
语句结构
格式 switch(表达式){ case 值1: 语句体1; break; case: 语句体2; break; ... default: 语句体n+1; [break;] }
执行流程
先计算表达式的值
依次和case后的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中遇到break就会结束
如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,之后程序结束
import java.util.Scanner; public class Test { public static void main(String args[]){ Scanner in=new Scanner(System.in); int i=in.nextInt(); switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); default: System.out.println("default"); } } }
for循环
格式
for(初始化语句;条件判断语句;条件控制语句){ 循环体语句; }
语法结构
初始化语句:可以是一条或多条语句,这些语句可以完成一些初始化操作
条件判断语句:这里是一个Boolean型的表达式,用来决定循环是否继续
循环体语句:可以是任意语句,这些语句会反复执行
条件控制语句:这里通常是一条用来改变变量的值,从而达到控制循环是否继续执行的效果
执行流程
执行初始化语句
执行条件判断语句,结果为true,循环继续,结果为false,循环结束
执行循环体语句
执行条件控制语句
回到条件判断语句
public class Test{ public static void main{ int sum=0; for(int i=1;i<=5;i++){ sum+=i; } System.out.println(sum); }
while循环
语句格式
初始化语句 while(条件判断语句){ 循环体语句 条件控制语句 }
执行流程
执行初始化语句
执行条件判断语句,看其结果是true还是false,如果是true,继续执行,如果是false,结束循环
执行循环体语句
执行条件控制语句
回到条件判断语句
public class Test{ public static void main{ int sum=0; int i=1; while(i<=5;){ sum+=i; i++; } System.out.println(sum); }
do-while循环结构
语句格式
初始化语句 do{ 循环体语句; 条件控制语句; }while(条件判断语句);
执行流程:
执行初始化语句
执行循环体语句
执行条件控制语句
执行条件判断语句,结构为true,循环继续,结果为false,循环结束
返回循环体语句
public class Test{ public static void main{ int sum=0; int i=1; do{ sum+=i; i++; }while(i<=5); System.out.println(sum); }
三种循环的区别
for循环和while循环先判断条件是否成立,再决定是否执行循环体
do-while循环先执行一次循环体,在判断条件是否成立
for循环与while循环的区别
条件控制语句控制的自增变量,因为归属foe循环的语法结构中,在for循环结束后,就不能再次访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以使用
三种循环都可能陷入死循环中
跳转控制语句
任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句
public class Test{ public static void main(String[] args){ int a=0; while(a<=100){ a++; if(a==88){ break; } } System.out.println("计数结束"); } }
continue语句用在循环体语句中,用来终止某次循环过程,即跳出循环体尚未执行的语句,接着进行下一次是否执行循环的判定
public class Test{ public static void main(String[] args){ int a=0; for(i=0;i<100;i++){ if(i%2==0){ continue; }//如果是3的倍数,跳过此次循环 a++; } System.out.println("a"); } }
主要事项:
continue用在while和do-while上,会立即回到循环首部,跳过当前循环的剩余部分
continue在for循环中,跳到for循环的迭代因子部分
嵌套循环
在一个循环语句中再嵌套一个或多个循环,称为嵌套循环
public class Test{ public static void main(String[] args){ for(int i=1;i<10;i++){ for(int j=1;j<=i;j++){ System.out.print(j + "*" + i + "=" + j * i + "\t"); } } } }
Random产生随机数
1.导入包
import java.util.Random;
2.创建对象
Random r=new Random();
3.产生随机数
int num=r.nextInet;
输出随机数
import java.util.Random; public class Test{ public static void main(String[] args){ Random r=new Random(); for(int i=1;i<10;i++){ int num=r.nextInt(10); System.out.println(num); } } }