导图社区 Java流程控制
Java流程控制,导图从复合语句、条件语句、循环语句、循环控制、小结这五个方面作了介绍,供大家学习参考。
编辑于2022-08-08 16:20:09 贵州微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
社区模板帮助中心,点此进入>>
微信小程序开发知识整理,系统地介绍了微信小程序开发的基础知识,帮助开发者更好地理解和掌握小程序开发的要点和流程。
SpringFramework技术的介绍,SpringFramework,通常简称为Spring,是一个开源的企业级Java应用程序框架,由Rod Johnson创建,并于2004年首次发布。Spring Framework的主要目标是简化企业级Java开发,提高开发效率和应用程序的可维护性。
Maven的特性以及使用部署方法,Maven介绍:Maven是一款为Java项目构建管理、依赖管理的工具(软件),使用Maven可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
流程控制
一、 复合语句
与C语言及其他语言相同,Java语言的复合语句是以整个块区为单位的语句,所以又称块语句。复合语句由开括号“{”开始,“}”闭括号结束。类体和方法体同样也是以“{ }”作为开始和结束标记。复合语句中的每个语句都是从上到下被执行。复合语句以整个块为单位,能够用在任何一个单独语句可以用到的地方,并且在复合语句中还可以嵌套复合语句
例如: package changliang_bianliang; public class Compound { public static void main(String[] args) { int x=20; { int y=40; System.out.println(y); int z=56; boolean b; { b=y>z; System.out.println(b); } //复合语句2 } //复合语句1 System.out.println("Hello Java"); } }
在使用复合语句时要注意,复合语句为局部变量创建了一个作用域,该作用域为程序的一部分,在该作用域中某个变量被创建并能够被使用。如果在某个变量的作用域外使用该变量,就会报错,例如左边的实例中,如果在复合语句外使用变量y、z、b将会出现错误,而变量x可在整个方法体中使用
二、 条件语句
1. if-else条件语句
if-else条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。使用if条件语句,可选择的是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果表达式返回的结果为true,则执行其后的语句;若为false则执行else之后的语句。
1||| 布尔表达式:必要参数,表示最后返回的结果必须是一个布尔值。它可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式
2||| 语句序列:可选参数。可以是一条或多条语句,当表达式的值为true时执行这些语句。若语句中仅有一条语句,则可以省略条件语句中的“{ }”
if后面的复合语句块只有一条语句时,虽然可以省略“{ }”,但是为了增强程序的可读性最好不要省略,if-else语句可以使用三元运算符进行简化。例如: package changliang_bianliang; public class Getifelse { public static void main(String[] args) { int x=45; int y=36; int MAX; //定义int型变量用于存储两数间的最大值 MAX=x>y?x:y; //使用三元运算符代替if-else判断两数间的最大值并赋值给变量MAX System.out.println("最大值为:"+MAX); } }
if-else语法:if(布尔表达式) { 若干语句 } else { 若干语句 }
package changliang_bianliang; public class Getif { public static void main(String[] args) { int x=45; //声明int型变量 int y=36; if(x>y) //比较x和y的大小 { System.out.println("x大于y"); } else { System.out.println("x小于y"); } } }
2. if-else-if多分支语句
用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”
package changliang_bianliang; public class Getterm { public static void main(String[] args) { int x=-5; //定义int变量 if(x>30) //判断x的值是否大于30 { System.out.println("x的值大于30"); //条件满足则输出x的值 } else if(x>10) //否则执行判断x的值是否大于10 { System.out.println("x的值大于10但小于或等于30"); } else if(x>0) { System.out.println("x的值大于0,但小于或等于10"); }else //以上条件均不满足则执行else下的语句块 { System.out.println("x的值小于或等于0"); } } }
3. switch多分支语句
在编程中一个常见的问题就是检测一个变量是否符合某个条件,如果不符合,再用另一个值来检测,以此类推,这种问题用if语句也可以完成,例如: if(grade=='A') { System.out.println("成绩优秀!"); } if(grade=='B') { System.out.println("成绩还行。"); }
switch语法:switch(表达式) { case 常量值1: 语句块1 break; ... case 常量值n: 语句块n break; default: 语句块 n+1 break; }
switch语句中表达式和常量的值必须是整形、字符型或字符串类型。switch首先计算表达式的值,如果表达式的值和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break语句位置。default语句为可选的,如果它不存在,且switch语句中表达式的值不与任何case的常量值相同,switch不做任何处理
package changliang_bianliang; public class Getswitch { public static void main(String[] args) { int week=3; //定义整形变量week switch(week) //指定switch语句表达式为变量week { case 1: //定义case语句中的常量为1 System.out.println("今天是周一"); break; case 2: //定义case语句中的常量为2 System.out.println("今天是周二"); break; case 3: //定义case语句中的常量为3 System.out.println("今天是周三"); break; default: System.out.println("以上条件都不是"); } } }
三、 循环语句
1. while循环
while循环也称为条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句,当条件表达式的返回值为真,则执行{ }中的语句,当执行完{ }中的语句后,重新判断条件表达式的返回值,直到表达式返回值的姐估计为假时,退出循环
语法:while(条件表达式) { 执行语句 }
例:package changliang_bianliang; public class Getsum { public static void main(String[] args) { int x=1; int sum=0; //定义整形变量用于存储总数 while(sum<=20) { sum+=x; x++; System.out.println("sum的值为:"+sum); System.out.println("x的值为:"+x); } } }
输出结果: sum的值为:1 x的值为:2 sum的值为:3 x的值为:3 sum的值为:6 x的值为:4 sum的值为:10 x的值为:5 sum的值为:15 x的值为:6 sum的值为:21 x的值为:7
2. do-while循环
do-while循环与while循环类似,他们之间的区别在于while语句为先判断条件是否成立再执行循环体,而do-while循环是先执行一次循环体,再判断条件是否成立。也就是说do-while语句中的循环体程序段至少要被执行一次
语法:do { 执行语句 }while(条件表达式);
以下程序展示了while和do-while循环的区别: package changliang_bianliang; public class Cycle { public static void main(String[] args) { int a=100,b=100; int sum1=0,sum2=0; //定义两个整形变量用于计量循环次数 while(a==90) //while循环 { sum1++; a--; } do //do-while循环 { b--; sum2++; }while(b==90); System.out.println("a的值为:"+a+" "+"循环次数为:"+sum1); System.out.println("b的值为:"+b+" "+"循环次数为:"+sum2); } }
运行结果: a的值为:100 循环次数为:0 b的值为:99 循环次数为:1
3. for循环
for循环是Java程序设计中最有用的循环语句之一。一个for循环语句可以用来重复执行某条语句,直到某个条件满足。在执行for循环时,首先执行表达式1,完成某一变量的初始化工作;下一步判断表达式2的值,若表达式2的值为真,则进入循环体;在执行完循环体后紧接着计算表达式3,这部分通常是增加或减少循环控制变量的一个表达式。这样一轮循环就结束了。第二轮循环从表达式2开始,若表达式2返回真,则继续循环,否则跳出整个for语句
语法:for(表达式1;表达式2;表达式3) { 语句序列 }
例: package changliang_bianliang; public class Circulate { public static void main(String[] args) { int sum=0; //定义整形变量用以保存相加后的总值 for(int i=1;i<=100;i++) { sum+=i; } System.out.println("1到100间所有数的和为:"+sum); } }
运行结果: 1到100间所有数的和为:5050
在编程时有时候会使用for循环的特殊语法格式来实现无限循环。该语法格式为:for(;;){ },对于这种无限循环可使用break语句跳出循环例: for(;;) { if(x<20) break; x++; }
4. foreach语句
foreach语句是for语句的特殊简化版本,不能完全取代for,但任何foreach语句都可以改写为for语句版本,foreach并不是一个关键字,习惯上将这种特殊的for语句格式称为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大便利。foreach语句中的元素变量X,不必对其进行初始化。
语法:for(元素变量x:遍历对象 obj) { 引用了x的Java语句; }
例: package changliang_bianliang; public class Repetition { public static void main(String[] args) { int array[]= {7,8,68,1,5}; //声明一维整形数组 System.out.println("一维整形数组array中的元素分别为:"); for(int x:array) { System.out.println(x); } } }
运行结果: 一维整形数组array中的元素分别为: 7 8 68 1 5
四、 循环控制
1. break语句
使用break语句可以跳出当前循环体,从而中断当前循环;在循环嵌套情况下,break语句将只会使程序流程跳出包含它最内层的循环结构,即只跳出一层循环
package changliang_bianliang; //单循环情况 public class BreakTest { public static void main(String[] args) { for(int i=1;i<=100;i++) { System.out.println(i); if(i==10) { break; } } System.out.println("end"); } }
运行结果: 1 2 3 4 5 6 7 8 9 10 end
package changliang_bianliang; //循环嵌套的情况 public class BreakTest1 { public static void main(String[] args) { for(int i=1;i<3;i++) { for(int j=1;j<12;j++) { if(j==3) { break; //如果j等于3则直接跳出循环,所以j的最大值到2为止,外层循环不受影响 } System.out.print("i的值:"+i+" "+"j的值:"+j+" "); } } } }
运行结果: i的值:1 j的值:1 i的值:1 j的值:2 i的值:2 j的值:1 i的值:2 j的值:2
在3种循环语句中使用break语句的形式:
如果想让break跳出外层循环,Java提供了“标签功能”,语法如下: 标签名:循环体 { break标签名; }
package changliang_bianliang; public class LoopBreakTest { public static void main(String[] args) { Loop:for(int i=1;i<5;i++) { for(int j=1;j<10;j++) { if(j==3) { break Loop; } System.out.println("i="+i+" "+"j="+j); } } } }
运行结果: i=1 j=1 i=1 j=2
2. continue语句
continue语句是对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环,在while和do-while循环中,continue语句使控制直接回到条件测试部分
package changliang_bianliang; //输出1-20间的奇数,使用continue语句实现 public class one_to_twty { public static void main(String[] args) { for(int i=1;i<=20;i++) { if(i%2==0) //若i模除2为0,continue语句会回到for循环的语句3,然后执行语句2进行条件测试 { continue; } System.out.println(i); } } }
在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试
在3种循环语句中,使用continue语句的形式:
与break语句一样,continue也支持标签功能,语法如下: 标签名:循环体{ continue 标签名; }
五、 小结
使用复合语句可以为变量定义一个有效区域;通过使用if与switch语句,可以基于布尔类型的测试,将一个程序分成不同的部分;通过while、do-while循环语句和for循环语句,可以让程序的一部分重复地执行,直到满足某个终止循环的条件。