程序的四种流程控制结构:

  1. 顺序结构
  2. 判断结构 : if 语句
  3. 选择结构 : switch 语句
  4. 循环结构 : while 语句, do...while 语句, for 语句

以下主要分析循环结构:

  • while 格式
while(条件表达式)
{
执行语句;
}
  • do...while 格式
do
{
执行语句;
}while(条件表达式);

特点: 无论条件是否满足, 循环体至少执行一次.

  • for 格式
for(初始化表达式; 循环条件表达式; 循环后的操作表达式)
{
执行语句;
}

for 和 while 的区别:

  1. for 和 while 可以互换;

    2, 如果需要通过变量来对循环进行控制, 该变量只作为循环增量存在时, 区别就体现出来了.例如:

需求: 打印 1 ~ 10 十个数字

int x = 1;

while(x < 11)

{

System.out.println("x="+x);

}

for(int y = 1; y<11; y++)

{

System.out.println("y="+y);

}

备注:

  • for 循环一结束, y 在内存中就释放了.
  • 局部代码块: 可以决定局部变量的生命周期.

for 嵌套结构 (大圈套小圈思想)

嵌套循环, 外循环控制的是行数, 内循环控制的是列数.

练习一: 打印 5 * 5 雪花图形
*****
*****
*****
*****
***** for(int x=0; x<5; x++)
{
// 可以先写内循环,确定一行的输出,
// 然后在写外循环,确定输出多少行
for(int y=0; y<5; y++)
{
System.out.print("*");
}
System.out.println();//打印完一行后,换行
} 练习二: 打印倒三角雪花(尖朝下)
*****
****
***
**
* int z = 5;
for(int x=1; x<=5; x++)
{
// 列数随着行数的增加而递减,
// 递减可以有两种方式解决: 头不变, 尾变: 1-5, 1-4, 1-3...
// 头变, 尾不变: 1-5, 2-5, 3-5...
for (int y=1; y<=z; y++)
{
System.out.print("*");
}
System.out.println();
z--;
} int z = 1;
for(int x=1; x<=5; x++)
{
// 列数随着行数的增加而递减,
// 头变, 尾不变: 1-5, 2-5, 3-5...
for (int y=z; y<=5; y++)
{
System.out.print("*");
}
System.out.println();
z++;
} 又发现 z 递增, x 也在递增. 故最终代码:
for(int x=1; x<=5; x++)
{
// 列数随着行数的增加而递减,
for (int y=x; y<=5; y++)
{
System.out.print("*");
}
System.out.println();
} 练习三: 打印倒三角雪花(尖朝上)
*
**
***
****
***** for(int x = 1; x<=5; x++)
{
for(int y = 1; y<=x; y++ )
{
System.out.print("*");
}
System.out.println();
} 练习四: 打印九九乘法表 for(int x=1; x<=9; x++)
{
for(int y=1; y<=x; y++)
{
System.out.print(y+"*"+x+"="+y*x+"\t");
// \t 为制表符,保证格式优良
}
System.out.println();
} 练习五: 打印特殊三角形
* * * * *
* * * *
* * *
* *
* 分析: 该图形由 "*" 和空格组成
由两个三角形组成: 尖朝上的三角形和尖朝下的星空格 // 一共 5 行
for(int x=1; x<=5; x++)
{
// 打印尖朝上的三角形,第一行不打印
for(int y=1; y<x; y++)
{
System.out.print(" ");
}
// 打印尖朝下的星空格
for(int z=x; z<=5; z++)
{
System.out.print("* ");
}
System.out.println(); }

其他流程控制语句

  • break 应用范围: 选择结构(switch) 和循环结构
  • continue 应用范围: 循环结构. 代表结束本次循环, 继续下次循环.

参考资料:

JavaSE 基础视频(毕向东)

Java 语言基础之语句的更多相关文章

  1. day03<Java语言基础+>

    Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) ...

  2. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  3. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  4. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  5. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  6. Java语言基础(九)

    Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...

  7. Java语言基础(一)

    Java语言基础(一) 在这里说明一下,有基础的跳过 高手跳过.在这里我想复习以前的东西,以及给正在学java的一些帮助 我用的MyEclipse8.5编写java代码,有需要联系我  QQ:9035 ...

  8. 第二十六节:复习Java语言基础-Java的概述,匿名对象,封装,构造函数

    Java基础 Java语言概述 Java语言 语言 描述 javaee 企业版 javase 标准版 javame 小型版 JDK JDK(Java开发工具包) Java语言 语言 Java语言 Ja ...

  9. 第二十五节:Java语言基础-面向对象基础

    面向对象 面向过程的代表主要是C语言,面向对象是相对面向过程而言,Java是面向对象的编程语言,面向过程是通过函数体现,面向过程主要是功能行为. 而对于面向对象而言,将功能封装到对象,所以面向对象是基 ...

随机推荐

  1. ((void *) 0)的含义和void的一些细节

    一.在c语言中,0是一个特殊的值,它可以表示:整型数值0,空字符,逻辑假(false).表示的东西多了,有时候不好判断.尤其是空字符和数字0之间. 为了明确的指出,0是空字符的含义,用用到了: (() ...

  2. vsftp 虚拟用户高级设置(转载)

    发布:xiaokk   来源:net     [大 中 小] vsftp 虚拟用户高级设置  本文转自:http://www.jbxue.com/article/1724.html 1.安装所需软件包 ...

  3. 河南省第七届ACM程序设计大赛赛后总结

    我们学校ACM集训开始于4月5号(清明节),5月25日在郑州解放军信息工程大学举办,集训耗时50天,但是感觉效果还行,但是也不是太好:我们也已经尽力了,虽然说只拿了个银牌,每份收获的背后,都会有辛勤的 ...

  4. java递归排序

    public class TestNativeOutOfMemoryError{ static int[] aa = new int[] {1, 2, 3, 4}; static int[] bb = ...

  5. OpenERP report doesn't work

    1. When you have used OpenOffice edited  one of reports,it has stored the report's banary data is da ...

  6. libubox-uloop

    参考:libubox组件(3)——uloop uloop是提供事件驱动机制接口,类似libevent事件框架,基于epoll接口来实现的. uloop三大功能:事件管理(uloop_fd).超时管理( ...

  7. Vmware虚拟机修改静态IP无法ping外网,以及eth0不见问题解决

    1. 修改静态地址后发现无法ping外网 要先把/etc/sysconfig/network-scripts/ifcfg-eth0中的网关设置成192.168.230.2. 需要设置网关 sudo r ...

  8. 海康网络摄像机调用SDK解码Java版

    两个回调函数: FRealDataCallBack 实现预览回调数据 DecCallBack 解码回调函数 在HCNetSDK.java补充相关函数和结构声明 //播放库函数声明,PlayCtrl.d ...

  9. php 路由实现

    因为有小的业务逻辑比较复杂,orm用起来很麻烦,但是多入口又不好控制,每个页面都去包含,多了就迷了,所以就只写了个路由,加了个防注入 封装增删改查好无聊,直接封装业务逻辑,为业务而开发,业务逻辑里是面 ...

  10. python笔记5:装饰器、内置函数、json

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...