Java基础-程序流程控制第二弹(循环结构)

                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  流程控制有三种基本结构:顺序结构,选择结构和循环结构。一个脚本就是顺序结构执行的,选择结构就是我之前分享的几篇学习笔记,比如if语句和switch语句,而循环结构就是本篇博客要讲的重中之重。

一.循环结构概述

  循环语句可以在满足循环条件的情况下,反复执行某一段代码,被反复执行的代码称为循环体,需要在适当的时候,把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成死循环。完整的循环应该包含以下四个部分:

    1>.初始化语句:初始化工作,在循环体开始之前执行;

    2>.循环条件:一个boolean表达式,决定是否执行循环体;

    3>.循环体:反复执行的部分;

    4>.迭代语句:在循环体执行完之后执行,然后再去判断循环条件,一般用来控制循环条件中的变量,使循环在合适的时候结束;

二.while循环

1>.while语句格式

[初始化部分]
while(条件表达式){
循环体语句;
[循环变量控制语句]
}
........//其它代码、

2>.执行流程

  a>.执行初始化语句(如果有的话);

  b>.判断条件表达式真假:如果真,往下执行;如果假,结束循环;

  c>.执行循环体语句;

  d>.执行循环变量控制语句(如果有的话);

  e>.返回第2步,重复执行,直到条件为假,结束循环;

3>.案例展示

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class WhileDome{
public static void main(String[] args){
/*
遍历1-100之间所有的数,打印能被3整除的数,每行打印5个。
*/ int counts = 0; //计数器变量
int num = 1; //遍历100之内所有的数,因此我们需要制定起始位置。 while( num <= 100 ){
if( num % 3 == 0 ){ //每个这个数能被3整除就打印
System.out.print( num + "\t" );
counts++; //每打印一个就需要进计数,当计数器是5的倍数是就需要换行
if( counts % 5 == 0 ){ //判断是否换行
System.out.println();
}
}
num++;
}
}
}

三.do...while循环

1>.do...while格式

[初始化部分]
do {
循环体语句;
[循环变量控制语句]
}while(条件表达式);

2>.执行流程

特点:循环体至少会被执行一次

  a>.执行初始化部分(如果有的话);

  b>.执行循环体语句;

  c>.执行循环变量控制语句(如果有的话);

  d>.判断条件表达式,如果为真,返回第2步;如果假,结束循环;

3>.案例展示

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class DoWhileDome{
public static void main(String[] args){
/*
遍历1-100之间所有的数,打印能被7整除的数,每行打印5个。
*/ int num = 1;
int counts = 0; do {
if ( num % 7 == 0 ){
System.out.print( num + "\t" );
counts++;
if( counts % 5 == 0 ){
System.out.println();
}
}
num++;
}while( num <= 100 );
}
}

四.for循环

1>.for循环格式

for(初始化表达式;条件表达式;循环变量控制语句){
循环体语句;
}

2.执行流程

  a>.执行初始化表达式,只执行一次,通常是定义循环变量语句;

  b>.判断循环条件:为真就往下执行;为假就结束循环;

  c>.执行循环体语句;

  d>.执行循环变量控制语句,一般是循环变量的自增或自减;

  e>.回到第2步,重复这个过程,直到为假时结束;

3>.案例展示

a>.判断1~100的奇数和偶数。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class ForDome{
public static void main(String[] args){
System.out.println("以下打印的是奇数");
for( int i = 1; i <= 100; i++ ){
if( i % 2 != 0 ){
System.out.println(i);
}
} System.out.println("以下打印的是偶数");
for( int i = 0; i <= 100; i+=2 ){
System.out.println(i);
}
}
}

b>.求和案例(用到了可变长形式参数)

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ package cn.org.yinzhengjie.demo; /*
* 参数个数不确定的形参定义
* public static int add(int... args){...}
*/
public class VariableArgsDemo { public static void main(String[] args) {
int sum = add2(1,2,3,4,5);
System.out.println(sum);
} //可变参数之前,可以有其它的形参,但是后边不能再有形参定义
public static int add2(int a,int... args){
int sum = a;
for (int i = 0; i < args.length; i++) {
sum += args[i];
}
return sum;
} //变长参数方法
public static int add(int... args){
int sum = 0;
for (int i : args) {
sum += i;
}
return sum;
}
} /*
以上代码执行结果如下:
15
*/

五.嵌套循环

  其实大家听了这个词就应该是啥意思,就是循环里面嵌套循环,比如我们小学铅笔盒上的“九九乘法表”还记得吗?我们可以通过上面三种循环任何一种嵌套方式实现,而且可以相互嵌套。话不多说,我们一起开看一下我写的代码。

 /*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ /* */ public class multiplicationTable{
public static void main(String[] args){
/*
//99乘法表姿势一:
for(int i=1;i<=9;i++){
for (int j = 1;j <= i;j++){
System.out.print(i + "x" + j + "=" + i * j + "\t");
}
System.out.println();
}
*/ /*
//99乘法表姿势二:
int a = 1;
while(a < 10){ //控制行数
// System.out.println(a);
int b = 1;
while(b <= a){ //控制每行的内容
System.out.print(a + "x" + b + "=" + a * b + "\t");
b++;
}
System.out.println();
a++;
}
*/ ////99乘法表姿势三:
int x = 1;
do{
// System.out.print(x + "x" + y + "=" + x * y + " ");
int y = 1;
do{
System.out.print(y + "x" + x + "=" + y * x + "\t");
y++;
}while(y <= x);
System.out.println();
x++;
}while(x < 10); }
}

                      

Java基础-程序流程控制第二弹(循环结构)的更多相关文章

  1. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  2. Java 基础 程序流程控制 (下)

    Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...

  3. Java 基础 程序流程控制 (上)

    Java程序流程控制 (上) Java程序大体分为三种流程控制结构:顺序结构.分支结构.循环结构 顺序结构 程序由上到下的逐行执行,中间没有任何跳转和判断语句. 示例代码如下: public clas ...

  4. Java基础总结--流程控制

    Java流程控制* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行.* 判断结构--对条件进行判断,执行相应的语句.有三种常见的形式< if(判断条件){语句;}--为真执行语句, ...

  5. Java基础之流程控制

    一.顺序结构 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. if-else-if 语句 语法: if(条件){ 当条件为true时,执行大括号内的代码 }el ...

  6. java之程序流程控制

    顺序结构:代码由上至下依次执行: 分支结构: if () { } else{ } if () { } else if () { } else { } switch(常量){ case 常量: 语句; ...

  7. Java基础(三)选择和循环结构

    一.选择结构,条件判断 1.if 语句 一个 if 语句包含一个布尔表达式和一条或多条语句.如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. impor ...

  8. Java基础之(九):循环结构

    循环结构 前面我们已经聊过了if语句,接下来我们就聊聊跟选择语句一样常用的语句:循环语句. 同样的,所有的循环语句都可以写成for语句 while循环 while循环的格式: while(布尔表达式) ...

  9. Java基础-6流程控制

    一).选择控制: 选择控制分为两种:if...else...和switch 单分支结构:这是最简单的一种选择结构,它只是简单的判断某个条件是否成立,如果成立就执行一段代码,语句形式为: if(条件表达 ...

随机推荐

  1. c++工厂模式(Factory method)

    下面以女娲造黑人,白人,黄种人的例子来介绍一下工厂模式. 1.工厂的接口,相当于造人工厂总部. class IHumanFactory { public: IHumanFactory(void) { ...

  2. Unity3D游戏开发——显示物品的仓库UI

    访问仓库物品列表的方法 为了在UI中显示物品列表,我们需要给InventoryManager添加两个能够访问它的公有方法: 代码: ··· public List<string> GetI ...

  3. iOS开发值得收藏的博客

    http://kobedai.me/ objc.io PS:经典,内容深而广objc中国NSHipster PS:很多小细节NSHipster 中文版唐巧的技术博客 PS:LZ是唐巧的脑残粉…OneV ...

  4. TP 等框架在配置虚拟主机伪静态注意事项

    在配置虚拟主机的伪静态 .htaccess 文件时需要注意 ? 符号的添加与否处理 例如TP 框架来讲 无 ? 符号,在有的虚拟主机中必须这样配置,否则无法解析(试了多个公司的虚拟主机只要加了?符号就 ...

  5. Putty+Xming实现在Windows客户端显示Linux服务器端的图形化程序

    走了不少弯路啊~~~言归正传,最近研发和我说要在一台EC2的机器上运行一个带GUI的程序,当时我就纳闷了:EC2的机器应该没有桌面套件的吧,那该怎么运行GUI的程序呢?百思不得其解时收到一封邮件,大致 ...

  6. [转帖]技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解

    技术扫盲:新一代基于UDP的低延时网络传输层协议——QUIC详解    http://www.52im.net/thread-1309-1-1.html   本文来自腾讯资深研发工程师罗成的技术分享, ...

  7. [转帖]脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?

    脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?     http://www.52im.net/thread-1732-1-1.html   1.引言 本文接上篇<脑残式网 ...

  8. 从解决一个java.lang.NoSuchMethodError想到的

    今天在发布系统部署一个web app的时候,发现应用服务器(tomcat 7.0.26)不能正常启动,于是远程登陆到服务器上查看应用服务器的启动日志,在tomcat_home的logs/localho ...

  9. validate效验规则

    ] } }, messages:{ name:{ required:"最少为2个字!" }, tel:{ required:"请填写手机号码!", isMobi ...

  10. 【算法】—— 1到n中减少了一个数,顺序被打乱,找出缺失的数

    问题 有0-n这n+1个数,但是其中丢了一个数,请问如何找出丢了哪个数? 五种方法 1)用1+2+...+n减去当前输入数据的总和.时间复杂度:O(n) 空间复杂度:O(1) [容易溢出] 2)用12 ...