循环控制

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. RuntimeError: Model class users.models.UserProfile doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

    Django启动的时候报错 File "/home/hehecat/PycharmProjects/MxShop/MxShop/urls.py", line 23, in from ...

  2. WCF header 域

    [OperationContract] [WebInvoke(UriTemplate = "poststr1")] public string poststr1(csinfo cs ...

  3. Java 之 字符缓冲流

    一.字符缓冲输出流 java.io.BufferedWriter extends Writer BufferedWriter:字符缓冲输出流. 继承自父类的共性成员方法: void write(int ...

  4. kubernetes 应用快速入门

    使用kubectl进行增.删.查.改等常用操作 查看kubectl命令帮助 kubectl -h kubectl controls the Kubernetes cluster manager. Fi ...

  5. java基本数据类型包装

    1. 2. 左边的是对象,自动装箱为对象,右边的是基本的数据类型. 3. 如果m,n换成128就超出范围,结果就不一样. 是因为把在这区间内的值都放在了常量池里面. Integer m = Integ ...

  6. 【问题】man命令打开的手册上链接怎么展开?

    参考:How to follow links in linux man pages? 前言 在使用man查看命令帮助的时候,有些文字下面会有下划线.给人的感觉是一个链接,但是又打不开.那么到底是不是链 ...

  7. 目录-java并发基础知识

    ====================== 1.volatile原理 2.ThreadLocal的实现原理(源码级) 3.线程池模型以及核心参数 4.HashMap的实现以及jdk8的改进(源码级) ...

  8. OCA & OCP Notes

    OCA An array does not override equals() and so uses object equality. ArrayList does override equals( ...

  9. SpringBoot自定义servlet、注册自定义的servlet、过滤器、监听器、拦截器、切面、webmvcconfigureradapter过时问题

    [转]https://www.cnblogs.com/NeverCtrl-C/p/8191920.html 1 servlet简介 servlet是一种用于开发动态web资源的技术 参考博客:serv ...

  10. NXP LPC系列学习笔记汇总(持续更新中)

    1. LPC11E68循环冗余校验CRC学习笔记 文章主要介绍了如何使用LPC11E68的CRC外设功能,并介绍了与CRC引擎相关的寄存器,然后以生成CRC-CCITT多项式校验为例进行了介绍. 2. ...