一件事情从开始到结束,需要先做什么,再做什么,最后再怎么做,这段过程就是一个流程。程序逻辑处理也是一个流程,java中有专门的流程控制语句,主要分为这几种:顺序,判断,选择,循环。
1.顺序流程
顺序流程就是代码一行一行往下执行,不根据条件判断是否需要执行。
示例代码:
public static void main(String[] args){ //顺序执行,根据编写的顺序,从上到下运行 int a=1; int b=2; System.out.println(a+b); }
2.判断流程
判断流程就是根据条件判断是不是要去执行这段代码,在生活中比如如果下雨就要带伞,不下雨就不带伞,这就是一个判断流程。java中判断流程控制语句是if...else...,if...else if...else
if...else... 语法:
if(条件) { 处理流程1; }else { 处理流程2; }
如果满足if里的条件,就会走if后边大括号里的流程1,否则就会走else后的大括号里的流程2;也可以只写if,不写else,既:
if(条件) {
处理流程1;
}
这样如果满足条件就走处理流程1,不满足就什么流程也不走。
示例代码:
public static void main(String[] args){ // 定义变量 int a = 1; if(a>= 0) {//条件 System.out.println("流程1"); } else{ System.out.println("流程2"); } }
if..else...语句作用等同于之前说的三目运算符
示例代码:
public static void main(String[] args) { int a = 1; int b = 2; int max;//定义变量,保存a和b的较大值 if(a > b) { max = a; } else { max = b; } //等同于三元运算符形式 max = a > b ? a:b;、、如果a>b,max=a,否则max=b }
if...else if...else语法:
if (条件1) { 流程1; } else if (条件2) { 流程2; } ... }else if (条件n) { 流程n; } else { 流程n+1; }
这种可以有多个判断条件,如果满足if里的条件,就会走if后边大括号里的流程,不满足if但是满足else if里的条件,就会走else if后边大括号里的流程,否则就会走else后的大括号里的流程;也可以不写最后的else
示例代码:
public static void main(String[] args) { int score = 100; if(score<0 || score>100){ System.out.println("你的成绩是错误的"); }else if(score>=90 && score<=100){ System.out.println("你的成绩属于优秀"); }else if(score>=80 && score<90){ System.out.println("你的成绩属于好"); }else if(score>=70 && score<80){ System.out.println("你的成绩属于良"); }else if(score>=60 && score<70){ System.out.println("你的成绩属于及格"); }else { System.out.println("你的成绩属于不及格"); } }}
3.选择流程
switch语法:
switch(表达式) { case 常量值1: 流程1; break; case 常量值2: 流程2; break; ... default: 流程n+1; break; }
switch括号里是一个表达式,如果表达式值和case后的常量相等,就走对应流程,如果都没有对应的,就走default,default也可以不写,但是推荐写上。每个case后的流程最后都要写break;否则会继续走下一个case。
示例代码:
public static void main(String[] args) { int i = 3; switch (i){ case 1: System.out.println("1"); break; case 3: System.out.println("3");//i为3,会走这里流程,但是因为没有break,还会走下个case,一直到遇到break或者走到default case 5: System.out.println("5"); break; default: System.out.println("default"); } }
4.循环流程
循环就是一段代码执行多次,就像小时候老师罚写作业一样,一个字写20遍。java循环流程控制语句有:for,while,do...while
for语法:
for(初始化表达式1; 布尔表达式2; 步进表达式3){ 流程 }
初始化表达式1定义一个变量并赋一个值,布尔表达式2会判断这个值是否满足条件,满足就走大括号里流程,然后按照步进表达式3改变初始表达式1定义的变量值,再根据布尔表达式2判断,一直这样循环,知道不满足布尔表达式,for循环结束。
示例代码:
public static void main(String[] args) { //定义变量i从0开始,循环条件为i<10,每次i会+1,直到i=10时,不满足条件,循环结束,结果会输出0 1 2 3 4 5 6 7 8 9 for(int i = 0; i< 10; i++) { System.out.println(i); } }
while语法:
初始化表达式1 while(布尔表达式2){ 循环体 步进表达式3 }
while语法是先定义一个初始化变量,在初始化表达式1赋值,然后判断是否满足布尔表达式2,满足就进入大括号内,执行循环体,步进表达式3是对初始化变量的操作,每次循环之后判断是否符合布尔表达式2,不符合则结束循环。
示例代码:
public static void main(String[] args) { //while循环10次 int i = 1;//定义初始化变量 while(i<=10){//循环条件<=10 System.out.println(i); i++;//步进 } }
do...while...语法:
初始化表达式1 do{ 循环体 步进表达式2 }while(布尔表达式3);
do...while...语句先定义一个初始化变量,在初始化表达式1赋值,然后就进入大括号内,执行循环体,步进表达式2是对初始化变量的操作,执行大括号内代码后,判断是否满足布尔表达式3,满足就循环,不满足就结束循环。do...while...和while相比是先执行循环内容,然后再判断是否继续循环。
最后再说两个关键字,break和continue。break用在循环体中直接结束循环,continue用在循环体中,continue之后代码不执行,跳出本次循环,开始下次循环。