Java 程序流程控制 (下)

此篇单独对循环结构的知识点进行整理:

之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构;在JDK1.5以后的版本还提供了foreach循环,用于进行数组和集合的遍历。

循环语句的四个组成部分:

  • 初始化部分
  • 循环条件部分
  • 循环体部分
  • 迭代部分

for循环:

for(初始化条件; 循环条件; 迭代部分){

  循环体

}

 public class TestFor {
public static void main(String[] args) {
//基础for循环,讲一个语句打印多次
for(int i=0; i<7; i++){
System.out.println("Hello World!! 第"+i+"次打印");
}
}
}

  练习:打印1-100中的所有偶数

 public class TestFor {
public void PrintNum(){
for(int i=1; i<=100; i++){
if(i%2==0){//对2取余,若为0则证明是偶数,执行打印语句,反之则继续循环直到满足偶数条件或者i>0
System.out.println("i="+i);
}
}
}
public static void main(String[] args) {
TestFor testFor = new TestFor();
testFor.PrintNum();
}
}

练习:编写代码满足从1循环到150并在每一行打印一个值,另外需要在每个3的倍数的行打印“foo”,在每个5的倍数的行打印“biz”,

在每个7的倍数行上打印输出“baz”

 public class TestFor {
public void FooBizBaz(){
for(int i=1; i<=150; i++){
System.out.print(i+":");
if(i%3 == 0){
System.out.print(" foo");
}
if(i%5 == 0){
System.out.print(" biz");
}
if(i%7 == 0){
System.out.print(" baz");
}
System.out.println();
}
}
public static void main(String[] args) {
TestFor testFor = new TestFor();
testFor.FooBizBaz();
}
}

注:一定要注意,这个题里不能使用else if(){},一旦使用,会无法在同时满足3、5、7的倍数的行数中同时打印三个字段,因为一旦有一个满足判断条件就不会执行下方的if判断语句从而直接跳出当前循环执行下一次循环。

还有很多小的基础的for循环算法,如打印1-100所有奇数的和、打印出所有的水仙花数(水仙花数可以自己搜索一下),这些题可以自行练习,有助于加强对for循环的理解,这里就不一一赘述了。

while 循环:

  初始化条件

while(循环条件){

  循环体

  迭代条件

}

示例:输出1-100以内的所有偶数

 public class TestWhile {
public void evenNum(){
int i = 1; //初始化条件
while(i<=100 ){//循环条件 if(i % 2 == 0){
System.out.println("i="+i);
}//循环体 i++;//迭代条件
}
} public static void main(String[] args) {
TestWhile testWhile = new TestWhile();
testWhile.evenNum();
}
}

注:for循环和while循环是能够实现互相转化的,因为二者拥有同样的四部分,只是四部分放置的位置不同。

while循环的另一种循环方式:

do...while 循环:

初始化条件

do{

  循环体

  迭代条件

}while(循环条件);

由上述结构可以看出,do...while循环是先进行一次循环在来判断是否满足循环条件,满足则进行下一次循环,不满足则停止循环。

示例:打印1-100中的所有偶数

 public class TestDoWhile {
public void evenNum(){
int i = 1;
do{
if(i % 2 == 0){
System.out.println("i="+i);
}
i++;
}while(i <= 100);
}
public static void main(String[] args) {
TestDoWhile testDoWhile = new TestDoWhile();
testDoWhile.evenNum();
}
}

do...while和while循环的区别:

do...while循环中 初始化条件即使不满足循环条件也会直接执行一次循环体再进行循环条件判断,所以循环体至少被执行一次,而while循环是必须满足循环条件才会执行循环体。

嵌套循环

  顾名思义,嵌套循环就是再一个循环中还能再声明一个循环

  几种嵌套方式:

  1.for循环中能够嵌套一个for或多个for;

2.while循环中可以嵌套一个或多个while循环;

3.for循环中可以嵌套一个或多个while循环;

4.while循环中可以嵌套一个或多个for循环;

5.for循环中可以嵌套一个或多个for/while循环;

6.while循环中可以嵌套一个或多个for/while循环。

示例:

For之间嵌套

 public class TestForFor {
/*打印出 *****
* *****
* *****
* *****
* */
public void forQianTao(){
for(int i = 1; i <= 4;i++){
for(int j = 1; j<=5 ;j++){
System.out.print("*");
}
System.out.println();
}//此为两层循环,i用于控制打印的行数,j用于控制打印的列数
}
public static void main(String[] args) {
TestForFor testForFor = new TestForFor();
testForFor.forQianTao();
} }

其它几种嵌套循环可以参考上面的示例,结构类似。自己可以进行练习,如通过嵌套循环打印九九乘法表、或者打印一个由星号组成的菱形图案,每个星号之间要有一个空格,这些题可以加强对嵌套循环的理解。

Java 基础 程序流程控制 (下)的更多相关文章

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

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

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

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

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

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

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

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

  5. Java基础之流程控制

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

  6. Java基础-6流程控制

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

  7. java之程序流程控制

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

  8. Java程序流程控制之if-else if-else

    java基础之流程控制(一)    流程控制 Flow Control :       流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句.        本讲内容包括分支语句 ...

  9. 3、Java基础语法(下):程序流程控制

    程序流程控制 从键盘获取不同类型的变量: 使用Scanner类,具体实现步骤: 1.导包:import java.util.Scanner; 2.Scanner的实例化:Scanner scan = ...

随机推荐

  1. 让Unity的Inspector面板支持字符限制(restrict)功能

    今天在优化红点组件,笔者打算将红点id由10进制改为16进制处理,就打算将红点id字段由uint类型改成string类型,用于填写16进制的字符(因为在Inspector面板里,uint/int类型字 ...

  2. [刷题]算法竞赛入门经典(第2版) 4-9/UVa1591 - Data Mining

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) #include<iostream> unsigned N, A, ...

  3. Java学习笔记——排序算法之简单排序

    男儿何不带吴钩,收取关山五十州.请君暂上凌烟阁,若个书生万户侯? --南园十三首 三种排序法: 1.冒泡法 2.简单选择法 3.直接插入法   上代码: 1.冒泡排序 public class Bub ...

  4. 如何实现在Windows上运行Linux程序,附示例代码

    微软在去年发布了Bash On Windows, 这项技术允许在Windows上运行Linux程序, 我相信已经有很多文章解释过Bash On Windows的原理, 而今天的这篇文章将会讲解如何自己 ...

  5. 【持久化框架】Mybatis简介与原理

    从这篇博文开始我们学习一下Mybatis,希望大家提出宝贵的建议. 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache softwar ...

  6. python 之变量

    什么是变量? 变量就是存储一个不固定的值,可以随时更改其值. 1.变量不仅可以是数字,还可以是任意数据类型 2.变量名必须是大小写英文.数字和_的组合,且不能用数字开头 python变量如何存储 首先 ...

  7. struts2.1.6教程五、拦截器

    在前面我们已经初步使用过拦截器,下面继续细细探讨. 1.概述strust2中的拦截器 拦截器是Struts2框架的核心,它主要完成解析请求参数.将请求参数赋值给Action属性.执行数据校验.文件上传 ...

  8. Swift 入门之简单语法(五)

    面向对象 目标 构造函数 构造函数的基本概念 构造函数的执行顺序 KVC 在构造函数中的使用及原理 便利构造函数 析构函数 区分 重载 和 重写 懒加载 只读属性(计算型属性) 设置模型数据(didS ...

  9. 这是假的JS——利用CSS Animation实现banner图非交互循环播放

    话不多说,先来张html和css代码截图~ 注意事项: 1.如果想在每张图前进行停顿,可以在keyframes中的每一步前加上一小段与下一张相同的代码: 2.如果想要在实现无违和感的最后一张与第一张的 ...

  10. 使用python遍历指定城市的一周气温

    处于兴趣,写了一个遍历指定城市五天内的天气预报,并转为华氏度显示.把城市名字写到一个列表里这样可以方便的添加城市.并附有详细注释 1 import requests import json#定义一个函 ...