一、循环的类型:
1、for循环
class For{ public static void main(String[] args) { System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("Hello World!"); System.out.println("我是分隔符~~~~~~~~~~~~~~~~~~~~~~~~"); for(int i = 0; i < 4; i++){ System.out.println("Hello World!"); } } }
运行结果:
2、while() {}
class TestWhile { public static void main(String[] args) { //100以内的偶数的输出 int i = 1; int sum = 0; while(i <= 100){ if(i % 2 == 0){ System.out.println(i); sum += i; } i++; } System.out.println(sum); //System.out.println(i); } }
运行结果:
3、do{}while()
class DoWhile{ public static void main(String[] args) { int i = 1; do{ if(i % 2 == 0){ System.out.print(i + "\t"); } i++; }while(i <= 100); } }
运行结果:
二、格式:
所有的循环结构都必须包含以下4部分:
1、初始化条件;
2、循环条件;
3、迭代条件;
4、循环体;
1、for循环格式:
/* 所有的循环结构都必须包含以下4部分: 1、初始化条件; 2、循环条件; 3、迭代条件; 4、循环体; 在这段代码中与格式的对应关系为: 1、初始化条件 = int i = 0; 2、循环条件 = i < 4; 3、迭代条件 = i++; 4、循环体 = System.out.println("Hello World!"); */ class For{ public static void main(String[] args) { for(int i = 0; i < 4; i++){ System.out.println("Hello World!"); } } }
2、while循环格式:
/* 所有的循环结构都必须包含以下4部分: 1、初始化条件; 2、循环条件; 3、迭代条件; 4、循环体; 在这段代码中与格式的对应关系为: 1、初始化条件 = int i = 1;int sum = 0;; 2、循环条件 = i <= 100; 3、迭代条件 = i++; 4、循环体 = if语句; */ class TestWhile { public static void main(String[] args) { //100以内的偶数的输出 int i = 1; int sum = 0; while(i <= 100){ if(i % 2 == 0){ System.out.print(i +"\t"); sum += i; } i++; } System.out.print(sum); } }
3、do{4 3}while(2);
/* 所有的循环结构都必须包含以下4部分: 1、初始化条件; 2、循环条件; 3、迭代条件; 4、循环体; 在这段代码中与格式的对应关系为: 1、初始化条件 = int i = 1; 2、循环条件 = i <= 100; 3、迭代条件 = i++; 4、循环体 = if语句; */ class TestDoWhile{ public static void main(String[] args) { int i = 1; do{ if(i % 2 == 0){ System.out.println(i); } i++; }while(i <= 100); int j = 10; do{ System.out.println(j); j++; }while(j<10); while(j < 10){ System.out.println(j); j++; } } }
注意:
1、不同的循环结构之间可以相互转换;
2、while和do-while的区别:do-while程序至少会执行一次;
三、嵌套循环:
说明:循环结构中还可以声明循环;让内层循环结构整体充当外层循环的循环体;若外层循环执行m次,内层循环执行N次,整个程序执行m*n次。
可以理解为外层循环控制行数,内层循环控制列数;
例:
class TestFor2 { public static void main(String[] args) { for(int j = 0;j < 4;j++){//外层循环控制行数 for(int i = 0;i < 5;i++){//内层循环控制列数 System.out.print("*"); } System.out.println(); } } }
运行结果:
练习题
1、九九乘法表
class TestJiuJiu { public static void main(String[] args) { for(int i = 1;i <= 9;i++){ for(int j = 1;j <= i;j++){ System.out.print(i + "*" + j + "=" + i*j + "\t"); } System.out.println(); } } }
运行结果:
2、输出100内的质数(两种方法实现)
第一种:
class TestPrimeNumber { public static void main(String[] args) { boolean flag = false; long start = System.currentTimeMillis(); for(int i = 2;i <= 100000;i++){//实现100以内的自然数的遍历 //如何判断i是否为一个质数 for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ flag = true; break; } } if(!flag){ System.out.println(i); } flag = false; } long end = System.currentTimeMillis(); System.out.println("所花费的时间为:" + (end - start)); } }
运行结果:由于数据过多,这里使用运营时间来表示
第二种:这种方式主要是为了显示运行的效率,这里也是使用运行时间来表示。
class TestPrimeNumber1 { public static void main(String[] args) { //boolean flag = false; long start = System.currentTimeMillis(); l:for(int i = 2;i <= 100000;i++){//实现100以内的自然数的遍历 //如何判断i是否为一个质数 for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ //flag = true; //break; continue l; } } //if(!flag){ //System.out.println(i); //} //flag = false; } long end = System.currentTimeMillis(); System.out.println("所花费的时间为:" + (end - start)); } }
运行结果:
四、无限循环
当需要使用无限循环时,将循环的循环条件修改为true即可(代码格式请参考第二部分),但是需要注意的是,在无限循环结果内部一定要提供循环的终止条件(使用break关键字)否则程序将无限制的执行下去,形成死循环;
五、break和continue:
1、break:
1、使用在swich-case结构或者循环结构中;
2、在循环结构中,一旦执行到break,就跳出当前循环。
2、continue:
1、使用在循环结构中;
2、在循环结构中,一旦执行到continue就跳出当次循环;
3、在嵌套循环中,可以使用带标签的break和continue。
例:
class TestPrimeNumber1 { public static void main(String[] args) { //boolean flag = false; long start = System.currentTimeMillis(); l:for(int i = 2;i <= 100000;i++){//实现100以内的自然数的遍历 //如何判断i是否为一个质数 for(int j = 2;j <= Math.sqrt(i);j++){ if(i % j == 0){ //flag = true; //break; continue l; } } //if(!flag){ //System.out.println(i); //} //flag = false; } long end = System.currentTimeMillis(); System.out.println("所花费的时间为:" + (end - start)); } }
注意:请注意第5行代码(l:for(int i = 2;i <= 100000;i++))以及第11行代码(continue l;),在第五行代码前边写了一个l:的标签,然后在第11行代码处进行调用,如果程序执行到这里会自动跳出此循环,然后从第五行开始执行;
六、数组:
1、定义:相同数据类型的数据的组合。
不使用数组的定义方式:
int i1 = 1; int i2 = 2; int i3 = 3;
使用数组的定义方式:
1、静态初始化:在声明并初始化数组与给数组相应的元素赋值操作同时进行;
int[] scores = new int[]{72,90,59};
2、动态初始化:在声明并初始化数组与给数组相应的元素赋值操作分开进行;
int[] scores1 = new int[3];
socres1[0] = 72;
socres1[1] = 90;
socres1[2] = 59;
2、数组的初始化问题(以下的初始化为错误的初始化方式):
String[] names = new String[5]{"AA","BB","CC"}
int i = new int[10];
int i = new int[];
注意:不管是动态初始化还是静态初始化,一定要在创建的时候就指明数组的长度;
3、数组的引用:
1、通过数组下角标的方式来进行引用;下角标从0开始到n-1结束,其中n为数组的长度。
2、数组的长度通过length属性来调用;
代码
3、如何遍历数组:使用循环来进行遍历
for(int i = 0,i < scores1.length;i++){
System.out.println(scores1[i]);
}
代码展示:
public class TestArray { public static void main(String[] args){ int i1; i1 = 12; boolean b = true; //1.如何定义一个数组 //1.1数组的声明 String[] names; int[] scores; //1.2初始化 //第一种:静态初始化:初始化数组与给数组元素赋值同时进行。 names = new String[]{"张三","李四","王五"}; //第二种:动态初始化:初始化数组与给数组元素赋值是分开进行的; scores = new int[4]; //2.如何调用相应的数组元素:通过数组元素的下角标的方式来调用。 //下角标从0开始,到n-1结束。其中N表示的是数组的长度。 scores[0] = 87; scores[1] = 89; scores[3] = 98; //3。数组的长度:通过数组的length属性。 System.out.println(names.length); System.out.println(scores.length); //4.如何遍历数组元素 // System.out.println(names[0]); // System.out.println(names[1]); // System.out.println(names[2]); for(int i = 0;i < names.length;i++){ System.out.println(names[i]); } } }
以上这篇Java中的循环笔记整理(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍C#学习笔记整理_变量等基础语法(必看篇),包括了C#学习笔记整理_变量等基础语法(必看篇)的使用技巧和注意事项,需要的朋友参考一下 C#学习笔记1: 变量的作用域冲突时,调用实例变量:this.a,调用类变量:类名.a 常量总是静态的,必须初始化,一般用全大写格式,声明关键字为const,如const int NUNBE = 10; C#的基本预定义类型内置于.NET Framew
本文向大家介绍Java中jqGrid 学习笔记整理——进阶篇(二),包括了Java中jqGrid 学习笔记整理——进阶篇(二)的使用技巧和注意事项,需要的朋友参考一下 相关阅读: Java中jqGrid 学习笔记整理——进阶篇(一) 本篇开始正式与后台(java语言)进行数据交互,使用的平台为 JDK:java 1.8.0_71 myEclisp 2015 Stable 2.0 Apache To
本文向大家介绍Oracle知识整理笔记,包括了Oracle知识整理笔记的使用技巧和注意事项,需要的朋友参考一下 小编整理的一篇关于Oracle知识的学习笔记,希望对大家有帮助。 1.简单对比一下SQL Server 和Oracle 先给大家看一张我画得图: 安装完Sql Server后,我们打开、连接数据库引擎后可以看到很多的数据库有系统数据库也有用户数据库。而Oracle安装后,一个数据
本文向大家介绍JQuery中attr属性和jQuery.data()学习笔记【必看】,包括了JQuery中attr属性和jQuery.data()学习笔记【必看】的使用技巧和注意事项,需要的朋友参考一下 用html直接data-key来存放,key必须全部小写。 二避免在key中使用短横线 以上这篇JQuery中attr属性和jQuery.data()学习笔记【必看】就是小编分享给大家的全部内容了
本文向大家介绍整理java读书笔记十五之java中的内部类,包括了整理java读书笔记十五之java中的内部类的使用技巧和注意事项,需要的朋友参考一下 内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。 *内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default
本文向大家介绍java同步与异步的学习笔记整理,包括了java同步与异步的学习笔记整理的使用技巧和注意事项,需要的朋友参考一下 概念: 1、同步:所有的操作都做完,才返回给用户。这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉)。这种情况下,用户不能关闭界面,如果关闭了,即迁移程序就中断了。 2、异步:将用户请求放入消息队