一、循环结构
- for 循环
控制一段代码反复执行多次。其具体格式为:
for(初始化; 布尔表达式; 更新) {
//代码语句
}
for循环应注意:
1.最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
2.执行一次循环后,更新循环控制变量。再次检测布尔表达式。循环执行上面的过程。
package com.study.loop;
public class ForDemo01 {
public static void main(String[] args) {
//for 循环
for (int i = 0; i < 3; i++) {
System.out.println("这是for循环");
}
}
}
package com.study.loop;
public class ForDemo03 {
public static void main(String[] args) {
//分别求1-100之间的奇数和以及偶数和
int sum1 = 0;
int sum2 = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 1) {
sum1 += i;
}else {
sum2+=i;
}
}
System.out.println("1-100的奇数和为:" + sum1);
System.out.println("1-100的偶数和为:" + sum2);
}
}
package com.study.loop;
public class ForDemo04 {
public static void main(String[] args) {
//水仙花数
int sum = 0;
for (int i = 100; i <= 999; i++) {
int ge = i % 10;
int shi = i / 10 % 10;
int bai = i / 100;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
System.out.println(i);
sum++;
}
}
System.out.println("水仙花数共有" + sum + "个");
}
}
- while循环
while是最基本的循环,它的结构为:
while( 布尔表达式 ) {
//循环内容
}
package com.study.branch;
public class WhileDemo01 {
public static void main(String[] args) {
//while循环使用及流程
int i = 0;
while (i < 3) {
System.out.println("hello world");
i++;
}
}
}
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
package com.study.branch;
public class WhileDemo02 {
public static void main(String[] args) {
//需求:世界最高峰是珠穆朗玛峰(8848.86米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,折叠多少次,可以折叠成珠穆朗玛峰的高度。
int num = 0; //定义一个变量用于记录纸张折叠次数
float paper = 0.1f;
float mountH = 8848860;
while (paper < mountH) {
paper = paper * 2;
num++;
}
System.out.println("折叠次数:"+num);
System.out.println("此时纸厚度:"+paper);
}
}
- do-while循环
先执行,再判断循环条件。对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do {
//代码语句
} while(布尔表达式);
package com.study.branch;
public class DoWhileDemo01 {
public static void main(String[] args) {
//学会使用dowhile流程,并理解执行其流程
int i = 0;
do {
System.out.println("hello world");
i++;
} while (i < 3);
}
}
- 死循环
一直循环的执行下去,如果没有干预不会停止下来。
- 跳转控制语句
break:跳出并结束当前所在循环的执行;只能在循环或者switch中
continue:用于跳出当前循环的当次执行,进入下一次循环。只能在循环中使用
package com.study.loop;
public class BreakDemo01 {
public static void main(String[] args) {
//理解break和continue的作用
for (int i = 0; i < 5; i++) {
System.out.println("hello world");
if (i == 2) {
break;//跳出并结束当前的循环执行
}
}
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue;
}
System.out.println("记录" + i);//记录0134,第二次循环continue跳出。
}
}
}
二、随机数Random类
package com.study.random;
import java.util.Random;
public class RandomDemo01 {
public static void main(String[] args) {
//使用java的随机数类Random
Random r = new Random();
for (int i = 0; i < 10; i++) {
int number = r.nextInt(10);//0-9不包含10的随机数
System.out.print(number);
}
}
}
package com.study.random;
import java.util.Random;
import java.util.Scanner;
public class RandomDemo02 {
public static void main(String[] args) {
//需求:随机生成一个1-100之间的数据,提示用户猜测,猜大则提示过大,猜小则提示过小,猜中结束游戏。
Random r = new Random();
int number = r.nextInt(100) + 1;
while (true) {
System.out.println("随机数已生成,请输入你猜测的数字:");
Scanner sc = new Scanner(System.in);
int number1 = sc.nextInt();
if (number1 > number) {
System.out.println("数据猜大了,其数据是:" + number);
} else if (number1 < number) {
System.out.println("数据猜小了,其数据是:" + number);
} else {
System.out.println("恭喜你猜对了");
break;
}
}
}
}