Java的控制语句设计的关键字有if-else while do-while for return break和switch。

  Java虽然保留goto关键字,但不支持goto语句。

1.true和false

  所有条件语句都利用条件表达式的真或假来决定执行路径。

  Java不允许使用数字作为布尔值使用。

  如果想在布尔测试中使用一个非布尔值,如if(a),那么首先必须使用一个条件表达式将其转换成布尔值,如if(a!=0)。

2.if-else语句

  else是可选的。

  格式:

if(Boolean-expression)
    statement
或
if(Boolean-expression) //Boolean-expression为真,执行statement1,否则执行statement2
    statement1
else
    statement2

//当然也可以嵌套
if(Boolean-expression1)
  statement1
else if(Boolean-expression2)
  statement2
else
  statement3

  注意,上面的Boolean-expression必须产生一个布尔结果。

3.迭代

1)while

while(Boolean-expression) //Boolean-expression为真,执行statement
    statement

2)do-while

do
    statement
while(Boolean-expression) //Boolean-expression为真,执行statement

  与while唯一区别在于do-while中的语句至少会执行一次。

3)for

for(initialization; Boolean-expression; step)
    statement

  for语句中,先执行initialization语句,然后判断Boolean-expression结果是否为true,为真则执行statement,接下来会执行step,再次对Boolean-expression结果进行判断,如此循环,直到Boolean-expression结果为false。

  for中的initialization和step可以是逗号表达式,这也是Java唯一用到逗号操作符的地方。此外,在initialization部分可以对多个同类型的变量进行定义。

4.foreach语法

  foreach可以让我们在不必创建int变量来对访问项构成的序列进行计数,它可以自动产生这一项。如下例:

import java.util.*

public class ForEachFloat{
  public static void main(String[] args){
        Random rand = new Random(47);
        float f[] = new float[10];
        for(int i = 0; i < 10; i++)
           f[i] = rand.nextFloat();
        for(float x:f)
           System.out.println(x);
    }
}

  结果如下,for(float x:f)定义了一个float类型的变量x,并将数组f的每个元素一次赋给x。

  任何返回一个数组的方法都可以使用foreach。

5.return

return关键词有两个作用:

  a.指定一个方法返回什么值;

  b.导致当前方法退出,并返回那个值。

6.break和continue

  break:强制退出循环,不执行循环中剩余的语句。

  continue:停止执行当前的迭代,然后退回循环其实处,开始下一次循环。

7.类似goto

  Java没有goto,但具有类似goto的功能,因为都使用“标签”机制。

  标签格式为 label:

  Java中,标签起作用的唯一地方刚好是迭代语句之前。而在迭代之前设置标签的唯一理由是我们希望在其中嵌套另一个迭代或一个开关。

  break和continue关键词通常只中断当前循环,但和标签一起使用,会中断循环,跳转到标签所在位置。

我们举例说明break-label和continue-label的区别,为了说明问题,我故意写了一个死循环。如下:

  上图程序的输出说明带标签的continue会跳转到标签的位置,并重新进入紧接着标签后的循环。

  从输出的i值也可以看出,i会再次从0开始,说明重新进入了for循环。

下图是break-label的表现:

  程序的输出说明带标签的break会中断并跳出标签所指的循环。

8.switch

  根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行,属于多路选择。

格式:

switch(integral-selector){
    case integral-vallue1: statement; break;
    case integral-vallue2: statement; break;
    case integral-vallue3: statement; break;
    //...
    default:statement;
}

  switch会执行case后的integral-value与integral-selector相等的statement。

  default在所有integral-value与integral-selector都不等的情况下执行。

  integral-selector必须为int或char类型类似的整数值,如果为字符串或者浮点数则switch不工作。

Java之路(三) 控制执行流程的更多相关文章

  1. 《Java基础复习》-控制执行流程

    最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...

  2. Java编程思想之四控制执行流程

    程序必须再执行过程中控制它的世界,并做出选择.在Java中,你要使用执行控制语句来做出选择. 4.1true和false 所有条件语句都利用条件表达式的真或假来决定执行路径. Java不允许使用数字作 ...

  3. java控制执行流程

    控制执行流程 欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html java当中涉及到的关键字包括if-else.whil ...

  4. 大家一起和snailren学java-(三) 操作符&控制执行流程

    “又是新的一周,感觉要学的东西还有好多,加油.由于第三章和第四章内容要总结的不是很多,没太多需要拿出来说的,就整合到一个帖子好了” 操作符 操组符,什么是操作符?其实就是+-*/=&^~| 等 ...

  5. Netty 源码 NioEventLoop(三)执行流程

    Netty 源码 NioEventLoop(三)执行流程 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 上文提到在启动 N ...

  6. 控制执行流程——(Java学习笔记三)

    if-else     控制程序流程最基本的形式 格式: if(boolean - expresion){ statement } 或 if(boolean - expresion){ stateme ...

  7. [Java编程思想-学习笔记]第4章 控制执行流程

    4.1  return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...

  8. Java中异常发生时代码执行流程

    异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员) ...

  9. Java编程思想学习(四)----第四章:控制执行流程

    在Java中,涉及的关键字包括if-else.while.do-while.for.return.break 以及选择语句switch.然而,Java并不支持goto语句(该语句引起许多反对意见,但它 ...

随机推荐

  1. USACO Section 2.1 The Castle 解题报告

    题目 题目描述 有一个城堡,城堡中有若干个房间,房间与房间之间用墙来进行分隔.现在我们需要统计这个城堡有多少个房间,并且还要找出最大的房间的面积是多少(一个单元格就代表一个单元面积).城堡的主人现在想 ...

  2. 【uoj228】 基础数据结构练习题

    http://uoj.ac/problem/228 (题目链接) 题意 给出一个序列,维护区间加法,区间开根,区间求和 Solution 线段树.考虑区间开根怎么做.当区间的最大值与最小值相等时,我们 ...

  3. 解题:CF1055F Tree and XOR

    题面 树上路径是可以通过到根的路径和LCA差出来的,所以建立一棵Trie树按位贪心即可......吗? 发现空间并不够,需要我们每层现建,要记录每个数和它异或答案之后在这一层插进去的编号 #inclu ...

  4. 【洛谷P1087】FBI树

    题目大意:后序遍历 题解:建立二叉树的码风不知道怎么突然跟线段树一样了...当然,这道题不建树也是可以的. 代码如下 #include <bits/stdc++.h> using name ...

  5. 【codevs2205】等差数列

    题目大意:给定一个长度为 N 的序列,求这个序列中等差数列的个数. 题解:根据题意应该是一道序列计数 dp.设 \(dp[i][j]\) 表示以第 i 项结尾,公差为 j 的等差数列的个数,则状态转移 ...

  6. c/c++ 判断两个实型的关系

    etc. minv=1e-10 or less x>y : x>y-minv x<y : x<y+minv x=y : fabs(x-y)<minv

  7. sublime代码对齐

    来源于:Sublime 自动缩进怎么设置? - 郭缔的回答 - 知乎 https://www.zhihu.com/question/22987174/answer/90874465 { "k ...

  8. 字符串日期转化以及yyyy-MM-dd HH:mm:ss大小写解释

    字符串日期转化 字符串转换为Calendar对象: // 日期字符串 private String dateStr; // 将字符串转换后的Calender对象 private Calendar ca ...

  9. dedecms织梦让channelartlist标签支持currentstyle属性

    打开include\taglib\channelartlist.lib.php  大约93行 找到: $pv->Fields['typeurl'] = GetOneTypeUrlA($typei ...

  10. A - Jugs ZOJ - 1005 (模拟)

    题目链接:https://cn.vjudge.net/contest/281037#problem/A 题目大意:给你a,b,n.a代表第一个杯子的容量,b代表第二个杯子的容量,然后一共有6种操作.让 ...