循环结构:
重复的做某件事情
具有明确的开始和停止标志
组成:
- 初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
- 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
语法:
- 初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作
- 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。例如: a<3
- 循环体语句:这里可以是任意语句,这些语句将反复执行
- 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,/--这样的操作
一、for循环
1、 格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
2、执行流程:
- 执行初始化语句
- 执行条件判断语句,看其结果是true还是false;
如果是false,循环结束;如果是true,继续执行 - 执行循环体语句
- 执行条件控制语句
- 回到第二步继续
for(int i = 1 ;i < = 5;i++){
System.out.println("HelloWorld");
}
案例:在控制台输出1-5和5-1的数据。
for(int i = 1 ; i<= 5; i++){
System.out.println(i);
}
for(int j = 5 ; j>= 1; j--){
System.out.println(j);
}
案例:求和 求1-5之间的数据和,并输出结果
int sum = 0;
for(int = 1;i<=5;i++){
sum += i;
}
System.out.println(sum);
案例:求偶数和
int sum = 0;
for(int i = 1 ; i<= 100;i++){
if(i % 2 == 0){
sum += i;
}
}
System.out.println(sum);
案例:水仙花
for(int i = 100;i <= 999;i++){
int ge = i %10;
int shi = i/10%10;
int bai = i/10/10%10;
if( ge * ge *ge + shi *shi *shi +bai *bai *bai == i){
System.out.println(i);
}
}
11.png
22.png
案例:统计水仙花个数
int count = 0;
for(int i = 100;i <= 999;i++){
int ge = i %10;
int shi = i/10%10;
int bai = i/10/10%10;
if( ge * ge *ge + shi *shi *shi +bai *bai *bai == i){
count++;
System.out.println(i);
}
}
System.out.println(count);
二、while循环语句
1.格式
基本格式:
while(条件判断语句){
循环体语句
}
完整格式:
初始化语句;
while(条件判断语句){
循环语句体;
条件控制语句;
}
执行流程:
1、执行初始化语句
2、执行条件判断语句,看结果是true还是false,如果是false,循环结束;如果是true,继续执行。
3、执行循环体语句
4、执行条件控制语句
5、回到第二步继续
int j = 1;
while(j<=5){
System.out.println("HelloWorld!");
j++;
}
案例:珠穆拉玛峰(8844430毫米)
假如我有一张足够大的纸,它的厚度是0.1毫米,要折叠多少次可以折成珠穆拉玛峰的高度。
double j = 0.1;
int number = 0;
while(j<=8844430){
j = j*2;
number++;
}
System.out.println("需要折叠" + number + "次");
三、do...while循环语句
基本格式:
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
1、执行初始化语句
2、执行循环体语句
3、执行条件控制语句
4、执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行
5、回到第二步继续。
int i = 1;
do{
System.out.println("love");
i++;
}while(i <= 5);
四、三种循环的区别
三种循环的区别:
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do..while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别: - 条件控制语句所控制的自增变呈,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环模式:
for(;;){}
while(true){}
do{}while(true);
ctrl + c 结束死循环。
五、跳转控制语句
- continue 用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行。
- break 用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
六、循环嵌套
for(int i = 0;i<24;i++){
for(int j = 0;j<60;j++){
System.out.println(i + "时" + j +"分");
}
}
七、Random
用于产生一个随机数
步骤:
1、导包
import java.util.Random;
//导包的动作必须出现在类定义的上面
2、创建对象
Random r = new Random();
//上面这个格式里r是变量名可以变,其他的都不可以变
3、获取随机数
int number = r.nextInt(10);
//获取数据的范围【0,10)包括0,但不包括10
上面这个格式里,number是变量名,可以变,数字10可以变,其他的不允许变
随机获得1-10、1-100的数字
import java.util.Random;
public class Demo01{
public static void main(String[] args){
Random r = new Random();
for(int i = 0 ;i < 10 ;i++){
int num = r.nextInt(10);
System.out.println(num);
}
System.out.println("------------");
for(int i = 0 ;i < 10 ;i++){
int num = r.nextInt(100)+1;
System.out.println(num);
}
}
举例:猜数字
import java.util.Random;
import java.util.Scanner;
public class Demo01{
public static void main(String[] args){
Random r = new Random();
int num = r.nextInt(10);
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要猜的数字:");
int cai = sc.nextInt();
if(cai > num){
System.out.println("猜大啦!");
}else if(cai < num ){
System.out.println("猜小啦!");
}else{
System.out.println("猜对啦!");
System.out.println("数字为"+num);
break;
}
}
}
}