zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    利用Continuous Testing实现Eclipse环境自动单元测试
    GWT-Dev-Plugin(即google web toolkit developer plugin)for Chrome的安装方法
    在SQL Server 2012中实现CDC for Oracle
    在SSIS 2012中使用CDC(数据变更捕获)
    SQL Server Data Tools – Business Intelligence for Visual Studio 2012安装时提示“The CPU architecture....”的解决方法
    SQL Server 2012新特性(1)T-SQL操作FileTable目录实例
    RHEL每天定时备份Oracle
    GWT-Dev-Plugin(即google web toolkit developer plugin)for firefox的下载地址
    Oracle中修改表名遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”
    Oracle中序列(SEQUENCE)的使用一例
  • 原文地址:https://www.cnblogs.com/gemuxiaoshe/p/10645619.html
Copyright © 2011-2022 走看看