循环结构(二)

学习本章有道的单词:

rate:速度,比率

young:年轻的,年少

schedule:时间表,调度

neggtive:消极的;否定

customer:顾客,观众

birthday:生日

point:点.指向,分点数

continue:继续,延生,持续

return:返回,归还

for:为了,因为:为了,对于


for循环

语法:

for(表达式1;表达式2;表达式3){

//循环体

}

表达式1:赋值语句>循环结构的初始部分,为循环变量赋初值,eg:int i =0

表达式2:条件语句>循环结构的循环条件,eg:i<100

表达式3赋值语句,通常使用++或--运算符>循环结构的迭代部分,通常用来修改循环变量的值eg:++

for关键字后面括号中的三个表达式必须用分号隔开.for循环中的这三个部分及{}中的循环体使循环结构必需的四个组成部分完美地结合在了一起,非常简明

for循环结构执行的顺序:

(1)执行初始部分(int i = 0;).

(2)进行循环条件判断(i<100)

(3)根据循环条件判断结果.如果为true,则执行循环体;如果为false,则退出循环,步骤(4),(5)均不执行.

(4)执行迭代部分,改变循环变量值(i++).

(5)依次重复步骤(2)~步骤(4),直到退出for循环结构.

表达式1这个初始部分仅仅执行了一次.

注意!

for循环结构有三个表达式,在语法上,这三个表达式都可以省略,但表达式后面的分号不能省略.如果省略了表达式,要注意保证循环能够正常运行.

首先给出一个表达式:

for(int i =0; i< 10;i++);

>省略表达式1:

           for(; i< 10;i++);

如果出现"表达式1"省略的情况,则需要在for语句前给循环变量赋值,因此可将上面的语句修改为:

         int i = 0;

         for(; i< 10;i++);

>省略表达式2:

         for(int i =0;   ;i++);

如果出现"表达式2"省略的情况,会出现"死循环"的情况,一种方法是添加表达式2,一种是在循环体中使用break强制跳出循环结构.关于break语句的用法,将在后面介绍.

>省略表达式3:

           for(int i =0; i< 10;);

如果出现"表达式3"省略的情况,,变量的值始终是0,因此循环条件永远成立,程序也会出现死循环.那我们可以在循环体中添加i++;

for(int i =0; i< 10;){

i++;

        }

在实际开发中,为了提高代码的可读性,尽量不要省略各个表达式.如果需要省略,可以考虑是否改用while或do-while结构.

跳转语句

Java支持三种形式的跳转:break,continue和return.return在后面讲.

break语句:

break语句在前面章节中switch语句中有使用,break语句用于终止某个循环,使程序跳到循环体外的下一条语句.在循环中位于break后的语句将不再执行,循环也停止执行.

break语句不仅可以用在for循环结构中,也可以用在while和do-while循环结构中,break语句通常与if条件语句一起使用.

continue语句:

continue语句可以用于for循环结构,也可以用于while和do-while循环结构.在for循环结构中,continue语句使程序先跳转到迭代部分,然后判断循环条件.如果为true,则继续下一次循环;否则终止循环.在while循环结构中,continue语句执行完毕后,程序将直接判断循环条件.continue语句只能用在循环结构中.

对比两个结构:

>break语句用于终止某个循环,程序跳转到循环体外的下一条语句.

>continue语句用于跳出本次循环,进入下一次循环的语句.

循环结构总结

三种循环结构:

while,do-while和for循环结构.

三种循环结构都有四个必不可少的部分:初始部分,循环条件,循环体,迭代部分,缺少了任何一个都可能造成严重错误.

对比>语法不同

while循环语句:

while(<条件>){

      //循环体

  }

do-while循环语句:

do{

//循环体

}while(<条件>);

for循环语句:

for(初始化;条件;迭代) {

    //循环体

}

执行顺序不同

>while循环结构:先进行条件判断,在执行循环体.如果条件不成立,退出循环.

>do-while循环结构:先执行循环体,在进行条件判断,循环体至少执行一次.

>for循环结构:先执行初始化部分,再进行条件判断,然后执行循环体,最后进行迭代部分的计算.如果条件不成立,跳出循环.

适用情况不同

>对于循环次数确定的情况下,通常选用for循环结构;对于循环次数不确定的情况,通常选用while和do-while循环结构.

Java中的循环结构(二)的更多相关文章

  1. Java中的循环结构

    1.while循环结构 语法: while(循环条件){ //循环操作 } while循环结构流程图: 举例: int i = 1; while(i <= 100){ System.out.pr ...

  2. Java中的循环结构进阶

    循环结构进阶 学习本章用到的单词 triangle:三角形 circle:圆形 diamond:钻石 password:密码 row:行.排列 二重循环结构 简单的说:二重循环就是一个循环体内又包含另 ...

  3. java中for循环的6种写法

    有些写法上的说明写的过于武断,可能有很多不当之处,仅供参考.   package ForLoop; import java.util.ArrayList; import java.util.Itera ...

  4. Java初认识--Java中的语法结构

    Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...

  5. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  6. Java中JVM内存结构

    Java中JVM内存结构 线程共享区 方法区: 又名静态成员区域,包含整个程序的 class.static 成员等,类本身的字节码是静态的:它会被所有的线程共享和是全区级别的: 属于共享内存区域,存储 ...

  7. Java中的集合(十二) 实现Map接口的WeakHashMap

    Java中的集合(十二) 实现Map接口的WeakHashMap 一.WeakHashMap简介 WeakHashMap和HashMap一样,WeakHashMap也是一个哈希表,存储的也是键值对(k ...

  8. Java中的集合(二)单列集合顶层接口------Collection接口

    Java中的集合(二)单列集合顶层接口------Collection接口 Collection是一个高度封装的集合接口,继承自Iterable接口,它提供了所有集合要实现的默认方法.由于Iterab ...

  9. JAVA中生成、解析二维码图片的方法

    JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...

随机推荐

  1. 全球首发-基于.NET 6长线支持Zoomla!逐浪CMS v8.6.0正式发布

    传送门: https://www.z01.com/down/3778.shtml 全新Zoomla!逐浪CMS v8.6.0 全于首个基于.net 6长线支持的CMS-Zoomla!逐浪CMS v8. ...

  2. updatexml和extractvalue函数报错注入

    updatexml()函数报错注入 updatexml (XML_document, XPath_string, new_value); 第一个参数:XML_document是String格式,为XM ...

  3. selet 语句详解

    SELECT 语句的基本格式为:        SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;        2.0 数学符号条件            SELECT 语句常常会 ...

  4. 【Rancher相关问题】Rancher 2.5.8 及以下版本,提示Alert: Component controller-manager,scheduler is unhealthy.

    问题描述 如图,Rancher2.5.8版本提示 controller-manager,scheduler 不健康,管理的k8s集群版本1.21.1 解决方法 在Master节点执行如下命令: sed ...

  5. [loj3043]线段树

    考虑把每一个区间单独统计,令$f[i]$表示第i个区间有标记的次数,$g[i]$表示第i个区间及其祖先中存在标记的次数,然后对于操作将所有区间分为5类(T为已执行操作个数): 1.被修改,那么$f[i ...

  6. 【Java面试题】-- Java String

    Java String 2019-11-02  17:40:45  by冲冲 1.String的内存位置 String是定义在 java.lang 包下的一个类.它不是基本数据类型.String是不可 ...

  7. 十一. Go并发编程--singleflight

    一.前言 1.1 为什么需要Singleflight? 很多程序员可能还是第一次听说,本人第一次听说这个的时候以为翻译过来就是程序设计中被称为的是 "单例模式". google之后 ...

  8. 洛谷 P5853 - [USACO19DEC]Tree Depth P(生成函数+背包)

    洛谷题面传送门 神仙题. 首先考虑一个点的深度是什么,注意到对于笛卡尔树而言直接从序列的角度计算一个点的深度是不容易的,因为这样会牵扯到序列中多个元素,需要 fixed 的东西太多,计算起来太复杂了. ...

  9. FVCOM泥沙模块河流边界处理

    简介 入流河流携带泥沙可以按照节点和边界两种形式给定,这两种方法都是在相关的节点上进行直接赋值,并不能保证进入计算域内泥沙总体积. 相关设置 XX_run.nml 河流参数设置 &NML_RI ...

  10. nginx 文件目录页面

    开启文件目录 server { listen 80; #设置自己静态目录的访问域名 server_name xxx.xxxx.com; #防止页面中文乱码一定要在utf-8前面加上gbk,顺序很重要 ...