循环结构
循环结构有for循环、while循环、do-while循环
一个循环是由四部分构成的,分别是循环变量、循环条件、循环体、改变循环变量的值。
- 循环变量,循环变量用于控制循环次数。
- 循环条件,循环条件用来判断循环是否继续。
- 循环体,循环体是循环条件为true时,要执行的代码段。
- 改变循环变量的值,只有循环变量的值能够改变,循环才有结束的时候,否则是死循环。
while循环——格式和流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Q59mRXa-1692019399403)(https://gitee.com/zhou-ying-ying/images/raw/master/images/image-20230807005518866.png)]
初始化语句:
while(循环条件){
循环体语句(被重复执行的代码)
迭代语句;
}
public class Ueven {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while (i<=10) {
if (i % 2 != 0) {
sum *= i;
}
i++;
}
System.out.println("输出一到10的奇数的乘积" +sum);
}
for循环的格式和流程
for (表达式1; 表达式2; 表达式3) {
循环体
}
// 表达式1 : 循环变量的初始化
// 表达式2 : 循环条件
// 表达式3 : 改变循环变量的值
// 循环体 :要重复循环的部分
表达式1 --> 表达式2 --> 循环体 --> 表达式3 --> 表达式2 --> 循环体 --> 表
达式3 --> 表达式2
// 输出所有的水仙花数
// 编写一个Java程序,使用for循环输出所有7的倍数,直到200为止。
// 编写一个循环,计算并输出从 1到10的所有整数的平方
// 编写一个循环,计算并输出从 1 到 100 之间所有偶数的和
// 编写一个循环,计算并输出从 10 到1之间所有奇数的乘积
public class Exec01 {
public static void main(String[] args) {
// 编写一个Java程序,使用 for 循环输出所有7的倍数,直到200为止。
for (int i = 1; i <= 200; i ++) {
if (i % 7 == 0) {
System.out.println(i);
}
}
}
public class Exec02 {
public static void main(String[] args) {
// 编写一个循环,计算并输出从 1到10的所有整数的平方
for (int i = 1; i <= 10; i ++) {
System.out.println(i * i);
}
}
public class Exec03 {
public static void main(String[] args) {
// 编写一个循环,计算并输出从 1 到 100 之间所有偶数的和
int sum = 0;
int num = 2;
while (num <= 100) {
// if (num % 2 == 0) {
sum += num;
// }
num += 2;
}
System.out.println(sum);
}
public class Exec03 {
public static void main(String[] args) {
// 编写一个循环,计算并输出从 1 到 100 之间所有偶数的和
int sum = 0;
int num = 2;
while (num <= 100) {
// if (num % 2 == 0) {
sum += num;
// }
num += 2;
}
System.out.println(sum);
}
do——while循环——格式和流程
初始化语句;
do{
循环体语句;
迭代语句;
}while(循环条件);
int i=0;
do{
System.out.println("Hello World");
i++;
}while(i<3);
1. for循环 和 while循环(先判断后执行);
do...while (先执行后判断)
2.for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。
如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议while循环。
3 for循环中控制循环的变量只在循环中使用
while循环中,控制循环的变量在循环后还可以继续使用
死循环
// for死循环
for ( ; ; ){
System.out.println("Hello World1");
}
// while死循环
while (true) {
System.out.println("Hello World2");
}
// do-while死循环
do {
System.out.println("Hello World3");
}while (true);
循环嵌套
循环嵌套执行流程:外部循环每循环一次,内部循环会全部执行完一轮。
public class MultipleTable {
public static void main(String[] args) {
// 输出乘法口诀表
// 外层控制 第一个乘数 1 - 9 内层控制被乘数 1 - 9数
for (int i = 1; i <= 9; i ++) {
for (int j = 1; j <= i; j ++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
public class Qian {
public static void main(String[] args) {
// 需求:在控制台使用 * 打印出4行4列的矩形
// 1. **** 4 *
// 2. ****
// 3. ****
// 4. ****
for (int i = 0; i < 4; i ++) {
// for (int j = 0; j < 4; j ++ ) {
// System.out.print("*");
// }
int j = 0;
while (j < 4) {
System.out.print("*");
j ++;
}
System.out.println();
}
}
跳转语句
标签
标签可以放在for、while或do语句之前,其语法格式为:标签: 语句;
//编写程序输出1到100之间的质数和
// 一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数
public class Prime {
public static void main(String[] args) {
outer:
for (int i = 1; i <= 100; i++) {
int count = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
count++;
}
if (count > 2) {
continue outer;
}
}
if (count == 2) {
System.out.println(i + "是素数");
}
}
}
break、continue
-
break作用:跳出并结束当前所在循环的执行
-
continue作用:结束本次循环,进入下一次循环
public class Break01 {
public static void main(String[] args) {
for (int i = 0; i < 5; i ++) { // i = 0 i = 1 i = 2 i = 3
if (i == 3) {
break;
}
System.out.println("我爱你");
}
}
public class Continue01 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i ++) { // i = 1 i = 2 i = 3 i = 4 i = 5
if (i == 3) {
continue;
}
System.out.println(i + "洗碗");
}
}
break:只能用于结束所在循环,或者结束所在switch分支的执行。
continue:只能在循环中进行使用。
- 什么是流程控制
答:流程控制是用来控制程序的执行顺序的
- 分支结构if和switch,如何选择?
答:if分支:一般用于对一个范围进行判断switch分支:对一个一个值进行匹配
- for循环和while循环、do-while如何循环
答:知道循环次数用for、不知道循环次数用while想要先执行,再判断,用do-while
生成随机数
// 目标:掌握使用Random生成随机数的步骤。
// 1、导包。import java.util.Random; (idea会自动完成)
import java.util.Random;
public class RandomDemo1 {
public static void main(String[] args) {
// 2、创建一个Random对象,用于生成随机数。
Random r = new Random();
// 3、调用Random提供的功能:nextInt得到随机数。
for (int i = 1; i <= 20; i++) {
int data = r.nextInt(10); // [0 - 9]
System.out.println(data);
}
}
}
public static void main(String[] args) {
//随机生成一个1-100之间的数据,提示用户猜测,猜大提示
//过大,猜小提示过小,直到猜中,结束游戏
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入100以内(包括100)的一个数:");
int number1 = sc.nextInt();
Random r = new Random();
System.out.println("来和下面这个数比大小吧!");
int number2 = r.nextInt(100) + 1;
System.out.println(number2);
if (number1 > number2) {
System.out.println("你猜大了!");
} else if (number1 < number2) {
System.out.println("你猜小了!");
} else if (number1 == number2) {
System.out.println("你猜对了!");
break;
}
}
}
f (number1 > number2) {
System.out.println(“你猜大了!”);
} else if (number1 < number2) {
System.out.println(“你猜小了!”);
} else if (number1 == number2) {
System.out.println(“你猜对了!”);
break;
}
}
}