【Java初探03】——流程控制语句

做任何事情都应当遵守一定的原则,程序设计也是如此,需要有流程控制语言来实现与用户的交流。流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,如果没有流程控制语句,整个程序将按照线性顺序执行,不能根据用户的输入决定的序列。


  • Java语言的流程控制语句

  • 复合语句
  • 条件语句
  • 循环语句
  • 循环控制

  • 复合语句

与c语言及其他语言相同,Java语言的复合语句是整个代码块为单位的语句,所以又称块语句。复合语句使用一对{}表示。

复合语句其实非常常见,我们在类的创建,及方法的定义上,类体就是以{}作为开始与结束的,复合语句中每个语句都是从上往下被执行的,复合语句以整块为单位,能够在任何一个单独语句可以使用到的地方,并且在复合语句中还可以嵌套复合语句。

需要注意的是,在复合语句的使用中,复合语句为局部变量创建一个作用域,如果在该域外调用局部变量则会发生错误。

public class class_structure {  // 主类
    public static void main(String[] args) {  // 主方法。
    }
}

  • 条件语句

条件语句有两种,if..else条件语句与switch多分支语句,条件语句也是我们日常经常会使用到的条件判断语句。

  • if条件语句
    if是一个非常重要的编程语句,用于告诉程序在某个条件成立的情况下执行的某段语句,而在另一种情况下执行另外的语句。
    if条件语句可分为三种:简单的if语句,正常的if...else语句,可以持续嵌套的if...else if,多分支语句,if...else if语句的效果和sweitch多分支语句是相同的。
if(布尔表达式){// 如果条件为true,则执行该复合语句体


}else{ // 如果条件为false,则执行该复合语句体

}
  • switch多分支语句
    在编程中一个常见的问题就是检测一个变量是否符合某个条件,如果不符合,再用另一个值来检查依次类推,这就需要使用到switch多分支语句了,当然使用多个if语句,或if..else if语句嵌套也可以实现,但太麻烦和臃肿。
Swicth(表达式){
 case 常量值1:
 语句块(也可以使用复合语句)
 break;
 case:常量值2:
 语句块
 break; 
...
default:
语句块
break;
} 

需要注意的是,swicth语句中表达式的值必须是一个整型,字符型,或字符串型,这一点就和if语句不同了。Swicth首先计算出表达式的值,然后一次与case相比较,相同则执行case下语句块,否则有break就跳出,没有就再对比下一个case。

  • 循环语句
    循环语句就是满足一定条件的情况反复执行某一操作。在Java中提供了三种常用的循环语句,分别是while循环语句,do...while循环语句,和for循环语句。

  • while语句
    也称条件判断语句,它的循环方式利用一个条件来控制是否继续反复执行这个语句。

while(条件表达式){
执行语句
}

当while语句表达式为true时,执行{}语句块,当执行完成后,再判断表达式的返回值,知道返回值为false时,推出循环。

2019-4-2-03.png

当while(x==5);这样使用时,并不代表接下来while不进行循环,而是判断为空语句,而进入无限循环,而编译器不会报错。

  • do while循环语句

do..while语句与while语句一样,他们之间的区别是while语句为先判断条件是否成立,再执行循环体,而do..whille语句是先执行一次循环后再判断条件是否成立,也就是说,do while语句中,循环至少运行要运行一次。

do{
执行语句
}
while(条件表达式);

2019-4-2-04.png

  • for循环语句

for 循环时Java程序设计中最有用的循环语句之一,一个for循环可以用来重复执行某条数据。直到某个条件得到满足在Java5以后,增加了foreach语法,常用来遍历数组。

  • for语句
int sum=0;
for(int i=2;i<=100;i+=2){
sum = sum +i;
}

表达式1:初始化表达式式.
表达式2:循环表达式,值为Boolean型的表达式。指定循环条件。
表达式3:循环后操作表达式,负责休整变量,改变循环条件 。

在执行for循环的时候,首先执行表达式1,完成某一变量的初始化,下一步判断表达式2,若2的值为true,则进入循环体;在执行完循环体后紧跟着计算表达式3;这部分通常是增加或减少循环控制变量的一个表达式,这样一轮循环就结束了,第二轮循环从计算表达式2开始,若表达式2返回true,则继续循环,否则跳出for语句。

2019-4-2-05.png

// for语句也可以使用这种方式实现无限循环,在这种循环中,可以使用break跳出循环。
for(;;){
....
break;
}
  • foreach语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在遍历数组等方面为程序员提供了很大的方便。

for(元素变量x:遍历对象 obj){
引用了x的Java语句;
}

foreach语句中的元素变量x,不必对其进行初始化。

int a[]={1,2,3}; // 声明数组a。
foreach(int b:a){
system.out.println(x); // foreach语句,int b引用变量,a指定要循环的数组。最后将b输出
}
  • 循环控制

  • break语句
    使用break语句可以跳出switch语句结构,同样也可以用break语句跳出当前的循环体,从而中断循环。

需要注意的是,在循环嵌套中,break只能跳出当前循环体,只能跳出一层循环,而不能跳出整个嵌套的循环体。

当然,Java语言中提供了标签机制来配合break机制跳出任意一层循环,只需要将循环体打上标签,然后在使用break的时候使用对应的标签,就可以跳出对应标签的循环体。

Loop:for(int i=0;i<3;i++){ // 在for循环前用标签标记循环体。
for(int j=0;j<6;j++){ // 嵌套循环。
if(j==4){
break Loop; // 直接跳出Loop标签的循环体
    }
System.out.println("i="+i+"j="+j)
  }
}

最后会在j=4时,跳出循环。

  • continue语句

continue语句时针对break语句的补充,Continue语句不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始循环,在for循环语句中遇到continue语句使控制直接回到条件测试部分。

当然的continue语句也一样可以使用标签跳出指定循环体。


学习了流程控制语句后,我们直到了可以使用复合语句为变量定义一个有效区域,通过if和switch语句,可以基于布尔类型的测试,将一个程序分成不同的部分;通过while,do...while循环语句和for循环语句,可以让程序的一部分重复的执行。直到满足某个终止循环的条件。


关于流程控制 完
更新时间:
2019-4-2
21:41

posted @ 2019-04-02 21:47  小舍先生  阅读(289)  评论(0编辑  收藏  举报