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


  • 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时,推出循环。

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

  • do while循环语句

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

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

  • 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语句。

// 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

【Java初探03】——流程控制语句的更多相关文章

  1. java基础3_流程控制语句

    一 条件判断 1. 条件运算符(三元表达式) ,其形式为: type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4; 2. 轻量级的文本编辑器:Ultr ...

  2. Java基础学习-流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...

  3. java基础(5):流程控制语句(switch)、数组

    1. 流程控制语句(续) 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达式的值作出判断,从而决定程序执行哪一段代码.例如,在程序 ...

  4. Java基础语法—流程控制语句

    在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.所以,我们必须清楚每条语句的执行流程.而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能. 3.1 流程控制语句分类 ​ ...

  5. JAVA 1.7 流程控制语句 续

    1. Java中的循环控制语句一共有3种,分别是while,do… while以及for循环.2. while循环,形式为:while(布尔表达式){//待执行的代码}3. do…while循环,新式 ...

  6. JAVA 1.6 流程控制语句

    1. 条件运算符(三元表达式),其形式为:type d = a ? b : c; 具体化形式为:int d = 2 < 1 ? 3 : 4;2. 轻量级的文本编辑器:UltraEdit.Edit ...

  7. 再回首,Java温故知新(九):Java基础之流程控制语句

    流程控制语句分为条件语句.循环语句和中断语句. 中断语句包括break和continue,两者的区别在于break会跳出整个循环,而continue则是跳出此次循环,之后还会继续下一次循环. 条件语句 ...

  8. java基础,流程控制语句

                                流程控制语句 条件语句:              if语句:                        *if(条件 boolean类型) ...

  9. IT兄弟连 Java语法教程 流程控制语句 分支结构语句5

    5  switch-case条件语句 Java中的第二种分支控制语句时switch语句,switch语句提供了多路支持,因此可以使程序在多个选项中进行选择.尽管一系列嵌套if语句可以执行多路测试,然而 ...

随机推荐

  1. leetcode-[3]Max Points on a Line

    Given n points on a 2D plane, find the maximum number of points that lie on the same straight line 思 ...

  2. java中逗号分隔的字符串和List相互转换

    1.将逗号分隔的字符串转换为List String str = "a,b,c"; List<String> result = Arrays.asList(str.spl ...

  3. 11.DataGrid分页

    前台页面: 后台程序:

  4. unigui的编译部署

    unigui的编译部署 unigui既可以EXE形态部署,也可以IIS的ISAPI的形态部署.关键在工程文件.dpr里面的编译开关. {$define UNIGUI_VCL} // 注释此编译开关将使 ...

  5. 【推荐】Win7任务栏增强工具 7+ Taskbar Tweaker 强大的任务栏标签管理工具

    我曾经推荐过一款XP的任务栏管理工具 Taskix,这是一款在XP系统中拖动任务栏内标签的小工具. XP 32位可以下载我汉化的版本 http://www.cnblogs.com/clso/archi ...

  6. dotnet core瘦身发布

    需要安装nuget包Microsoft.Packaging.Tools.Trimming然后利用如下命令发布dotnet publish -r win10-x64 -c release --self- ...

  7. Mybatis-generator插件,用于自动生成Mapper和POJO

    后台环境为springboot+mybatis. 步骤一:添加mybatis环境 <dependency> <groupId>mysql</groupId> < ...

  8. jsp的两个include了解

    在jsp中三大指令(page --  include -- taglib)中有一个 include 然后再三个动作标签中(include -- forward -- param)中也有一个includ ...

  9. ReactiveCocoa 源码阅读记录。

    1:RACSingle 需要订阅信号 RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACS ...

  10. word2vec的原理(一)

    最近上了公司的新员工基础培训课,又对NLP重新产生的兴趣.NLP的第一步大家知道的就是不停的写正则,那个以前学的还可以就不看了.接着就是我们在把NLP的词料在传入神经网络之前的一个预处理,最经典的就是 ...