循环结构(二)

学习本章有道的单词:

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. Python科普系列——类与方法(上篇)

    欢迎来到新的系列,up又开新坑了~~ 实际上,Python作为一门易用性见长的语言,看上去简单,却仍然有很多值得一说的内容,因此这个系列会把Python中比较有意思的地方也给科普一遍.而另一方面,关于 ...

  2. 跟着老猫来搞GO-容器(1)

    前期回顾 前面的一章主要和大家分享了GO语言的函数的定义,以及GO语言中的指针的简单用法,那么本章,老猫就和大家一起来学习一下GO语言中的容器. 数组 数组的定义 说到容器,大家有编程经验的肯定第一个 ...

  3. 菜鸡的Java笔记 第二十一 final 关键字

    使用final定义类,属性,方法            final在一些书中被称为终结器,意思是:利用final定义的类不能够有子类,利用final定义的方法不能够被覆写,利用final定义的变量就成 ...

  4. (数据科学学习手札131)pandas中的常用字符串处理方法总结

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常开展数据分析的过程中,我们经常需要对 ...

  5. [hdu7022]Jsljgame

    先考虑$x=y$的情况,此时即是一个平等博弈,因此考虑$sg$函数 具体的,有$sg(n)=\begin{cases}0&(n=0)\\mex(\{sg(n-i)\mid 1\le i\le ...

  6. [cf1515G]Phoenix and Odometers

    显然这条路径只能在$v_{i}$所在的强连通分量内部,不妨仅考虑这个强连通分量 对这个强连通分量dfs,得到一棵外向树(不妨以1为根) 考虑一条边$(u,v,l)$,由于强连通,总存在一条从$v$到$ ...

  7. [hdu5379]Mahjong tree

    一棵子树的每一个儿子相当于划分一个区间,同时这些区间一定要存在一个点连续(直接的儿子),因此每一棵树最多只有两个儿子存在子树,并且这两个儿子所分到的区间一定是该区间最左和最右两段,所以ans*=(so ...

  8. Winform开发的快速、健壮、解耦的几点建议

    在Winform开发领域开发过十多年的项目中,见证着形形色色的架构和官方技术的应用,从最早类似Winform模式的WebForm技术,到接着的JQuery+界面组件,再到Asp.net Core的技术 ...

  9. 定时任务注解@Scheduled

    概述 要使用@ Scheduled注解,首先需要在启动类添加@ EnableScheduling,启用Spring的计划任务执行功能,这样可以在容器中的任何Spring管理的bean上检测@ Sche ...

  10. Contest 2050 and Codeforces Round #718 (Div. 1 + Div. 2) 题解

    竟然上 GM 了,incredible( A 首先如果 \(2050\nmid n\) 那显然就 \(-1\) 了,否则答案显然为 \(\dfrac{n}{2050}\) 的各位数字和. B 显然这个 ...