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


  • 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. 关于Lambda

    1. 查询时,包含关联子对象.如: 数据库中包含表Father和Son,映射实体如下: public class Father { public string Name{get;set;} publi ...

  2. VS2008 + QGIS1.7.1试验

    今天试验了一下.结果算是成功了吧.显示Generate done,生成了.但是提示了一个“SVN version不明确”的错误提示,应该无大碍吧.但是打开Build成的.sln也没看出有啥不妥. 用C ...

  3. java中的中文字符转码技术

    package com.yin.test; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; impor ...

  4. HDU2955 01背包

    http://acm.hdu.edu.cn/showproblem.php?pid=2955 题目大意:给你一个劫匪抢银行的最高安全概率,给你银行得到钱数,和劫匪在这个银行可以逃跑的概率,问你最多能抢 ...

  5. java基础知识-数据类型及转换

    1.java中的常量大体分为两种: <1>字面量常量 <2>自定义常量 2.java中常量(字面量)的分类:<1>,整数常量:直接出现的整数<2>,小数 ...

  6. Poj2296

    题意:给定n个点,然后在每个点在一个正方形的上边或者下边的中点,并且所有的正方形等大且不能重叠.求正方形最大的边长是多少. 思路:很明显的二分边长+判定.不过判定要用到2-sat,算是2-sat的入门 ...

  7. Swift3 倒计时按钮扩展

    extension UIButton{ func overrideSelf(){ self.setTitle("验证码", for: .normal) self.titleLabe ...

  8. 托管博客到coding或者github

    1. 部署网站到github的pages服务 参考: <在Github上面搭建Hexo博客(一):部署到Github> <Hexo搭建独立博客,托管到Github和Coding上教程 ...

  9. Ubuntu修改apt-get源

    1.背景 服务器上安装了最新的Ubuntu Server 17.04,代号为zesty.使用apt-get命令安装软件时,有时候速度比较慢,有时候会失败.因此考虑用国内的镜像源更换下apt-get的默 ...

  10. 201621123018《Java程序设计》第7周学习报告

    1. 本周学习总结 1.1 思维导图:Java图形界面总结 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 事件.事件源. 事件监听器.事件处理方法 1.2 任 ...