循环控制

for循环

语法:

for(循环初值;循环条件;步长)
{
语句; //循环体
}

例子:

import java.io.*;
public class Demo4
{
public static void main(String args[])
{
for(int i=0;i<10;i++)
{
System.out.println("12.3");
}
}
}

while循环

语法:特别说明while循环是先判断,再执行语句

while(循环条件)
{
语句; //循环体
}

例子:

import java.io.*;
public class Demo4
{
public static void main(String args[])
{
int i=0;
while(i<10)
{
System.out.println("12.1");
i++;
}
}
}

do while循环

语法:特别说明:do while是先执行再判断

do {
语句; //循环体
}while(循环条件);

例子:

import java.io.*;
public class Demo4
{
public static void main(String args[])
{
int i = 0;
do{
System.out.println("do while循环");
i++;
}while(i<10);
}
}

do while 和 while 的区别

import java.io.*;
public class Demo4
{
public static void main(String args[])
{
int i=0; while(i>10)
{
System.out.println("while循环");
i++;
}
for (i=0;i>10;i++)
{
System.out.println("for循环");
}
i = 0;
do{
System.out.println("do while循环");
i++;
}while(i>10);
}
} 输出结果:
D:\myJavaDemo>java Demo4
do while循环

  do while不管符不符合条件都会执行一次循环

案例:请编写一个程序,可以接受一个整数,表示层数,打印出金字塔     

当遇到一个题无从下手时,可以先拆解成简单的问题

public class Demo5
{
public static void main(String []args)
{
//死去活来-->打四层
int lay = 4; //表示有多少层
for (int i=1;i<=lay;i++)
{
//打印*
for(int k=lay-i;k>0;k--) //int k=1;k<=lay-i;k++
{
System.out.print(" ");
}
for (int j=1;j<=(i-1)*2+1;j++) //1-1,2-3,3-5
{
System.out.print("*");
} System.out.println(); //打印出换行符
}
}
}

  注意 System.out.println 和 System.out.print 不一样,前者会打出换行

案例二:将金字塔打印成镂空形状的

  • 提示:要想到对打印 * 的那条语句动手脚
  • 注意到只有第一层和最后一层打印的东西和原来完全相同,所以要做判断,判断是否是顶层或者底层,i表示层数——(i==1 || ==lay)
  • 然后进行*号的判断,前后的 * 号都要打出来,所以要判断 * 是否是第一个和最后一个,j表示要打印的是第几个 * ——(j==1 || j==(i-1)*2+1),剩下的要打印 空格
public class Demo5
{
public static void main(String []args)
{
int lay = 7;
for (int i=1;i<=lay;i++)
{
for(int k=lay-i;k>0;k--)
{
System.out.print(" ");
}
for (int j=1;j<=(i-1)*2+1;j++)
{
//判断盖层是否是顶层或者是底层
if(i==1||i==lay)
{
System.out.print("*");
}
else
{
//如果是第一个*和最后一个*号,都要打出来
if(j==1||j==(i-1)*2+1)
{
System.out.print("*");
}
else    //否则就打印空格
{
System.out.print(" ");
}
}
} System.out.println();
}
}
}

作业:打一个镂空的菱形

Java学习日记基础篇(三-下)——流程控制之循环控制的更多相关文章

  1. Java学习日记——基础篇(三-上)基本语法之运算符和流程控制

    运算符 算术运算符 听其名而知其意,就是用于计算的,java中常用的是: +   加 -    减 *    乘 /    除 %  取模,取余——%可以用来得到两个数相除的余数 小练习——写一个ja ...

  2. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  3. Java学习日记基础篇(四)——类,对象之成员变量,成员方法,构造方法

    面向对象(Object Oriented) 一.面向对象杂谈 面向对象(Object Oriented),我的翻译是以物体为目标的,就是说编程的时候是建立一个物体,然后对这个物体进行操作. Java语 ...

  4. Java学习日记——基础篇(一)常识

    JAVA简介 Java的标准 Java是一种语言,一个平台包含JavaSE.JavaEE.JavaME三个版本 JavaSE标准版(属于Java的基础部分,可以开发C/S构架的桌面应用程序) Java ...

  5. Java学习日记基础篇(七) —— 数组、排序

    数组 为什么要有数组? 案例:一个养鸡场有六只鸡,他们的体重分别为3kg,5kg,1kg,3.4kg,2kg,50kg.请问这六只鸡的总体重和平均体重是多少? public class test5 { ...

  6. Java学习日记——基础篇(二)基本语法

    变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...

  7. Java学习日记基础篇(九) —— 集合框架,泛型,异常

    集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...

  8. Java学习日记基础篇(八) —— 二进制、位运算、位移运算

    二进制 二进制是逢2进位的进位置,0,1是基本算符 原码反码补码 在基本数据类型那里,有详细解释 二进制的最高位数是符号位:0表示整数,1表示负数 正数的原码,反码,补码都一样 负数的反码 = 它的原 ...

  9. Java04-Java语法基础(三)流程控制

    Java04-Java语法基础(三)流程控制 一.数据类型的转换 1.自动转换:在赋值运算中,占字节数大的类型会自动向字节小的类型转换 double d1 = 3.14; int t1 = d1; 2 ...

随机推荐

  1. java常见排序算法

    今天去面试的时候又考了排序算法,排序这个东西,你以为你懂了,但是真正去写的时候才会发现好多细节自己都模棱两可,我写着写着就全都乱了,回来之后赶紧重新写一遍. (1)冒泡排序 public void b ...

  2. 你听过稀疏数组(sparseArray)吗?

    稀疏数组(sparseArray) 基本介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.记录数组一共有几行几列,有多少个不同的值 ...

  3. Java内存模型之从JMM角度分析DCL

    DCL,即Double Check Lock,中卫双重检查锁定.其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错.他们为什么会写错呢?其错误根源在哪里?有什么解决方 ...

  4. ORACLE获取年初年末,月初月末,季度初季度末

    转自:https://www.cnblogs.com/leqhome/p/5319984.html --年初,年末select trunc(sysdate,'yyyy') from dual;sele ...

  5. Eclipse workspace被锁定

    重新打开Eclipse时,提示如下: Workspace Unavailable: Workspace in use or cannot be created, choose a different ...

  6. UNIX常用shell

    /bin/sh Bourne shell 它是Unix的默认Shell,也是其它Shell的开发基础.Bourne Shell在编程方面相当优秀,但在处理与用户的交互方面不如其它几种Shell /bi ...

  7. IDEA配置maven报错解决方案

    主要是得分清楚你的本地maven库,以及maven安装根目录 ,一般你自己安装maven成功后,电脑默认读取的库位置在C盘下面. 只要把路径指向搞对了,就没什么问题了 .

  8. java--动态代理设计模式,CGLIB实现的动态代理设计模式

    代理设计模式 代理设计模式的基本形式 代理设计模式的核心思路,一个接口两个子类,一个子类完成核心业务操作,另一个完成与核心业务有关的辅助性操作.例如,编写一个简单的设计模式. package com. ...

  9. XSS挑战之旅平台通关练习

    1.第一关 比较简单,测试语句: <svg/onload=alert(1)> <script>confirm(1)</script> <script>p ...

  10. 【FRDM-K64F学习笔记】使用ARM mbed和Keil MDK下载你的第一个程序

    FRDM-K64F开发平台采用MK64FN1M0VLL12微控制器.该控制器包含一个带有浮点单元的ARM Cortex-M4内核.其最高工作频率为120MHz,具有256KB的RAM.1MB闪存以及许 ...