Java 程序流程控制 (下)

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

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

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

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

for循环:

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

  循环体

}

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

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

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

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

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

  1. public class TestFor {
  2. public void FooBizBaz(){
  3. for(int i=1; i<=150; i++){
  4. System.out.print(i+":");
  5. if(i%3 == 0){
  6. System.out.print(" foo");
  7. }
  8. if(i%5 == 0){
  9. System.out.print(" biz");
  10. }
  11. if(i%7 == 0){
  12. System.out.print(" baz");
  13. }
  14. System.out.println();
  15. }
  16. }
  17. public static void main(String[] args) {
  18. TestFor testFor = new TestFor();
  19. testFor.FooBizBaz();
  20. }
  21. }

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

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

while 循环:

  初始化条件

while(循环条件){

  循环体

  迭代条件

}

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

  1. public class TestWhile {
  2. public void evenNum(){
  3. int i = 1; //初始化条件
  4. while(i<=100 ){//循环条件
  5.  
  6. if(i % 2 == 0){
  7. System.out.println("i="+i);
  8. }//循环体
  9.  
  10. i++;//迭代条件
  11. }
  12. }
  13.  
  14. public static void main(String[] args) {
  15. TestWhile testWhile = new TestWhile();
  16. testWhile.evenNum();
  17. }
  18. }

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

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

do...while 循环:

初始化条件

do{

  循环体

  迭代条件

}while(循环条件);

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

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

  1. public class TestDoWhile {
  2. public void evenNum(){
  3. int i = 1;
  4. do{
  5. if(i % 2 == 0){
  6. System.out.println("i="+i);
  7. }
  8. i++;
  9. }while(i <= 100);
  10. }
  11. public static void main(String[] args) {
  12. TestDoWhile testDoWhile = new TestDoWhile();
  13. testDoWhile.evenNum();
  14. }
  15. }

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之间嵌套

  1. public class TestForFor {
  2. /*打印出 *****
  3. * *****
  4. * *****
  5. * *****
  6. * */
  7. public void forQianTao(){
  8. for(int i = 1; i <= 4;i++){
  9. for(int j = 1; j<=5 ;j++){
  10. System.out.print("*");
  11. }
  12. System.out.println();
  13. }//此为两层循环,i用于控制打印的行数,j用于控制打印的列数
  14. }
  15. public static void main(String[] args) {
  16. TestForFor testForFor = new TestForFor();
  17. testForFor.forQianTao();
  18. }
  19.  
  20. }

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

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. 在Centos7 更改Docker默认镜像和容器的位置

    图片出处:https://bobcares.com/wp-content/uploads/docker-change-directory.jpg 一.Why? 通常,当你开始使用docker时,我们并 ...

  2. AFNetworking源码阅读

    get方法: - (NSURLSessionDataTask *)GET:(NSString *)URLString parameters:(id)parameters progress:(void ...

  3. centOS的命令行与图形页面之间的转换

    .命令行 -> 图形界面 注意:在安装CentOS7的时候要添加GUI图形界面,否则没有效果. # startx

  4. MFC教程

    MFC教程 还有VS2015的视频教程 试看教程地址:http://dwz.cn/4PcfPk免费下载地址:http://dwz.cn/mfc888 一.VS2010/MFC编程入门教程之目录 第一部 ...

  5. Eclipse常用的6个Debug技巧

    1. Ctrl+Shift+i: Person father = new Person(); father.setName("father"); System.out.printl ...

  6. @Autowired标签与 @Resource标签 的区别

    Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource. @PostConstruct及@PreDestroy. 1. @Autowi ...

  7. 开涛spring3(1) - Spring概述

    1.1.1  Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由 ...

  8. shell脚本中$参数的介绍

    $$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表.如&quo ...

  9. 玩转nodeJS系列:使用cluster创建nodejs单机多核集群(多进程)

    前言: nodejs提供了cluster集群(支持端口共享的多进程),cluster基于child_process,process二次封装,方便我们使用该功能实现单机nodejs的web集群. 1.c ...

  10. 用Java写的简单五子棋游戏(原创五子连珠算法)

    源码jar包(已安装jdk环境可直接运行) 下载地址:http://download.csdn.net/detail/eguid_1/9532912 五子连珠算法为自创算法,对于五子棋该算法性能足以. ...