Java基础之流程控制
2015-07-20 23:12
411 查看
程序流程控制语句主要分为:顺序流程、判断流程、选择流程、重复流程(循环流程)几大类。
一、顺序流程
顺序流程是最简单也是最容易看的一种流程,它是根据代码书写的顺序来从上而下,逐行执行的。
二、判断流程
判断流程主要与if关键字有关,分为单支判断、双支判断、多支判断、嵌套判断这几类。
1、单支判断
格式:if(条件表达式){
执行的代码块;
}
示例:判断一个数是否大于0.
2、双支判断
格式:if(条件表达式){
执行的代码块;
}else{
执行的代码块;
}
示例:判断奇偶数。
输出为:10是偶数。
3、多支判断
格式:if(条件判断表达式){
执行的代码块1;
}else if(条件判断表达式){
执行的代码块2;
}
……
else{
执行的代码块n;
}
示例:判断一个字符是大写字母、小写字母、数字还是特殊字符。
二、选择流程
格式:switch(条件){
case 匹配值一:执行语句一;
case 匹配值一:执行语句二;
case 匹配值一:执行语句三;
case 匹配值一:执行语句四;
case 匹配值一:执行语句五;
……
default:执行语句n;
}
程序执行时,会用每一个case匹配条件,如果匹配上了,就会执行后面的语句,直到语句结束。
语句结束有两种情况:一种是遇到break关键字;另一种是执行到语句结尾(右大括号)。
注:(1)case和default语句顺序不固定,如果想要语句在default后面就结束,在后面加break关键字;如果default在语句的最后面,break关键字可以省略。
(2)switch语句中的检测条件,支持的数据类型有:byte、short、int、char、enum(枚举)(jdk1.5之后)、String(字符串,jdk1.7之后支持)。
示例:给定一个月份,判断是什么季节。
判断语句和选择语句的区别:(1)判断语句检测的条件都是布尔型的,switch检测的不是;
(2)判断语句适合用作区域的判断,switch适合用值的匹配;
(3)判断语句每个if都跟一个条件表达式,都要获取一次值,switch只需获取一次值。
三、重复流程(循环流程)
所谓的循环,就是用来让一行代码或多行代码重复的执行。java中的循环语句分为三种:分别是while循环、do...while循环、for循环。
1、while循环
格式:while(条件表达式){ //条件表达式的结果是boolean类型
重复执行的代码;
}
特点:先判断条件表达式是否成立,条件成立(true),则执行while的循环体代码;条件不成立,则不执行循环体中的代码。
循环正常执行的三要素:循环的初始值;循环的上限;循环条件的修改。
示例:输出1-50之间所有的偶数。
结果为:
2、do...while循环
格式:do{
//重复执行的代码
}while(条件表达式);
特点:先执行循环体中的代码,再判断循环条件是否成立。条件满足,继续执行循环体中的代码;条件不满足,不会再执行循环体中的代码(先执行,后判断;循环体中的代码最少会执行一次)。
示例:输出1-50之间的所有奇数。
结果为:
while循环和do..while循环的区别:
(1)while循环属于先判断后执行的循环语句;
(2)do..while循环属于先执行后判断的循环语句,循环体至少执行一次。
3、for循环
格式:for(循环初始值 ; 循环条件 ; 循环条件修改) {
重复执行的代码;
}
特点:for循环的特点:和while循环一样,属于先判断后执行的循环语句。
执行步骤:(1)先执行循环初始值
(2)判断循环条件是否成立:成立,执行循环中的代码块;不成立,停止循环。
(3)循环条件修改完成后,会再次判断循环条件是否成立。
注意:for循环语句中的循环三要素可以省略,但分号不能省略。
示例:输出1~50之间所有整数。
while循环和for循环:相同:都属于先判断后执行的循环语句。
不同:while循环在循环执行结束之后,循环的初始值还可以继续使用;for循环在循环执行结束之后,循环的初始值不能继续使用。
四、其他控制流程语句——break、continue
break(跳出)语句:应用范围:选择结构和循环结构。
continue(继续)语句:应用于循环结构。
注: (1)这两个语句离开应用范围,存在是没有意义的。
(2)这个两个语句单独存在时,下面都不可以有语句,因为执行不到。
(3)continue语句是结束本次循环继续下次循环。
(4)标号的出现,可以让这两个语句作用于指定的范围。只能用于循环结构。
一、顺序流程
顺序流程是最简单也是最容易看的一种流程,它是根据代码书写的顺序来从上而下,逐行执行的。
package order; public class OrderProcess { public static void main(String[] args) { //定义一个变量,并赋给初始值 int n=10; //输出n System.out.println("输出为:"+n); } }上面就是一段简单的顺序流程代码。
二、判断流程
判断流程主要与if关键字有关,分为单支判断、双支判断、多支判断、嵌套判断这几类。
1、单支判断
格式:if(条件表达式){
执行的代码块;
}
示例:判断一个数是否大于0.
package process; public class JudgeProcess { //目的:控制整数在大于0时输出 public static void main(String[] args) { //定义一个int型变量,并赋初值 int n=10; if(n>0){//判断整数是否大于0 System.out.println("输出为:"+n); } } }
2、双支判断
格式:if(条件表达式){
执行的代码块;
}else{
执行的代码块;
}
示例:判断奇偶数。
package process; public class JudgeProcess { //目的:判断一个数是否为奇偶数 public static void main(String[] args) { //定义一个int型变量,并赋初值 int n=10; if(n%2==1){//判断整数是否为奇数,是则执行if下语句,否则执行else下语句 System.out.println(n+"是奇数。"); }else{ System.out.println(n+"是偶数。"); } } }
输出为:10是偶数。
3、多支判断
格式:if(条件判断表达式){
执行的代码块1;
}else if(条件判断表达式){
执行的代码块2;
}
……
else{
执行的代码块n;
}
示例:判断一个字符是大写字母、小写字母、数字还是特殊字符。
package process; public class JudgeProcess{ //目的:判断一个字符是大写字母、小写字母、数字还是特殊字符。 public static void main(String[] args) { //定义一个字符并赋值 char ch='h'; if(ch>='A'&&ch<='Z'){//判断是否为大写字母 System.out.println("大写字母"); }else if(ch>='a'&&ch<='z'){//判断是否为小写字母 System.out.println("小写字母"); }else if(ch>='0'&&ch<='9'){//判断是否为数字 System.out.println("数字"); }else{ System.out.println("特殊字符"); } } }输出为:小写字母
二、选择流程
格式:switch(条件){
case 匹配值一:执行语句一;
case 匹配值一:执行语句二;
case 匹配值一:执行语句三;
case 匹配值一:执行语句四;
case 匹配值一:执行语句五;
……
default:执行语句n;
}
程序执行时,会用每一个case匹配条件,如果匹配上了,就会执行后面的语句,直到语句结束。
语句结束有两种情况:一种是遇到break关键字;另一种是执行到语句结尾(右大括号)。
注:(1)case和default语句顺序不固定,如果想要语句在default后面就结束,在后面加break关键字;如果default在语句的最后面,break关键字可以省略。
(2)switch语句中的检测条件,支持的数据类型有:byte、short、int、char、enum(枚举)(jdk1.5之后)、String(字符串,jdk1.7之后支持)。
示例:给定一个月份,判断是什么季节。
//给定一个月份,判断是什么季节。 class Jijie { public static void main(String[] args) { //定义一个整数,并初始化值 int n=7; mouth(n);//调用函数输出给定月份对应的季节 } public static void mouth(int n){ switch(n){ case 3: case 4: case 5: System.out.println("春季");break; case 6: case 7: case 8: System.out.println("夏季");break; case 9: case 10: case 11: System.out.println("秋季");break; case 12: case 1: case 2: System.out.println("冬季");break; default: System.out.println("给定的月份有误!"); } } }输出为:夏季
判断语句和选择语句的区别:(1)判断语句检测的条件都是布尔型的,switch检测的不是;
(2)判断语句适合用作区域的判断,switch适合用值的匹配;
(3)判断语句每个if都跟一个条件表达式,都要获取一次值,switch只需获取一次值。
三、重复流程(循环流程)
所谓的循环,就是用来让一行代码或多行代码重复的执行。java中的循环语句分为三种:分别是while循环、do...while循环、for循环。
1、while循环
格式:while(条件表达式){ //条件表达式的结果是boolean类型
重复执行的代码;
}
特点:先判断条件表达式是否成立,条件成立(true),则执行while的循环体代码;条件不成立,则不执行循环体中的代码。
循环正常执行的三要素:循环的初始值;循环的上限;循环条件的修改。
示例:输出1-50之间所有的偶数。
class Demo { //目的:输出1~50之间所有的偶数。 public static void main(String[] args) { //定义一个变量,值为1 int n=1; while(n<=50){//开始循环,循环的上限为小于等于50 //在循环中判断是否为偶数 if(n%2==0) System.out.print(n+"\t"); //修改循环条件的值 n++; } } }
结果为:
2、do...while循环
格式:do{
//重复执行的代码
}while(条件表达式);
特点:先执行循环体中的代码,再判断循环条件是否成立。条件满足,继续执行循环体中的代码;条件不满足,不会再执行循环体中的代码(先执行,后判断;循环体中的代码最少会执行一次)。
示例:输出1-50之间的所有奇数。
class Demo { //目的:输出1~50之间所有的奇数。 public static void main(String[] args) { //定义一个变量,值为1 int n=1; do{//开始循环, //在循环中判断是否为奇数 if(n%2==1) System.out.print(n+"\t"); //修改循环条件的值 n++; }while(n<=50);//判断循环条件,循环的上限为小于等于50 } }
结果为:
while循环和do..while循环的区别:
(1)while循环属于先判断后执行的循环语句;
(2)do..while循环属于先执行后判断的循环语句,循环体至少执行一次。
3、for循环
格式:for(循环初始值 ; 循环条件 ; 循环条件修改) {
重复执行的代码;
}
特点:for循环的特点:和while循环一样,属于先判断后执行的循环语句。
执行步骤:(1)先执行循环初始值
(2)判断循环条件是否成立:成立,执行循环中的代码块;不成立,停止循环。
(3)循环条件修改完成后,会再次判断循环条件是否成立。
注意:for循环语句中的循环三要素可以省略,但分号不能省略。
示例:输出1~50之间所有整数。
class Demo { //目的:输出1~50之间所有整数。 public static void main(String[] args) { //开始循环,判断循环条件,一次循环后,将i++,再判断循环条件 for(int i=0;i<=50;i++){ System.out.print(i+"\t"); } } }结果为:
while循环和for循环:相同:都属于先判断后执行的循环语句。
不同:while循环在循环执行结束之后,循环的初始值还可以继续使用;for循环在循环执行结束之后,循环的初始值不能继续使用。
四、其他控制流程语句——break、continue
break(跳出)语句:应用范围:选择结构和循环结构。
continue(继续)语句:应用于循环结构。
注: (1)这两个语句离开应用范围,存在是没有意义的。
(2)这个两个语句单独存在时,下面都不可以有语句,因为执行不到。
(3)continue语句是结束本次循环继续下次循环。
(4)标号的出现,可以让这两个语句作用于指定的范围。只能用于循环结构。
相关文章推荐
- 鉴于Eclipse下在线安装Pydev插件所遇见的问题,及其替代的离线安装的方法
- jdk学习之路---java泛型
- java 设计模式 Iterator 容器与容器遍历
- Springmvc+spring+maven+Mybatis整合
- Java万年历,输入年月获取该年月日历表
- 观察者模式及Java实现例子
- stuts2注解
- javaEE第三~四天
- Java中编码占几个字符
- JavaEE学习第二天
- java7动态类型支持
- Java进阶---Java一些基础知识
- JavaEE学习第一天
- Spring学习笔记——Spring如何装配各种类型的属性以及实际应用
- Spring 环境搭建
- spring(11) Spring的生命周期
- java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容
- spring(9) Spring中使用外部属性文件
- java中定时器(java.util.Timer)
- spring(8) Spring中bean的作用域