文章目录
前言
for循环和while循环应用于random的使用
一、循环结构的概念和分类
1.循环结构的概念
循环,即事物周而复始的变化。
循环结构,使一部分代码按照次数或一定的条件反复执行的一种代码结构。
2.循环结构的分类
- for循环
- while循环
- do…while循环
二、for循环
1.for循环语句
- 格式:
for(初始化语句;判断条件语句;控制条件语句){
//循环体
} - 执行流程
2.for循环案例1
需求:在控制台输出5次HelloWorld
代码演示:
package cn.itcast.demo;
/**
* for循环
* 格式:
* for(初始化语句:判断条件语句;控制条件语句){
* 循环体
* }
* 执行流程:
* 第一次循环:先执行初始化语句,然后执行判断条件语句
* 如果条件不成立:循环结束。
* 如果条件成立:执行循环体,然后执行控制条件语句,此时,第一次循环执行结束。
* 第二次循环:执行判断条件语句
* 如果条件不成立:循环结束。
* 如果条件成立:执行循环体,然后执行控制条件语句,此时,第一次循环执行结束。
* 依次类推……
*/
public class ForDemo1 {
public static void main(String[] args) {
//需求:打印5次HelloWorld
for(int i =1;i<=5;i++){
System.out.println("HelloWorld");
}
}
}
3.for循环案例2
需求:
- 在控制台输出1-5
- 在控制台输出5-1
分析:
- 用原始方式实现输出1-5
- 用for循环实现输出1-5
- 用for循环实现输出5-1
代码演示:
package cn.itcast.demo;
public class ForDemo2 {
public static void main(String[] args) {
//需求1:打印1~5之间的数字
//方式一:传统做法
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);
System.out.println("---------------");
//通过观察上述的代码,我们发现:输出语句的次数是固定的,只是输出语句里边的内容在发生变化
//针对于这种情况,就可以采用for循环来解决
//方式二:采用for循环
for(int i= 1;i<=5;i++){
System.out.println(i);
}
System.out.println("---------------");
//需求2:打印5~1之间的数字
for(int i=5;i>=1;i--){
System.out.println(i);
}
System.out.println("---------------");
}
}
4.for循环案例3(累加器思想)
需求:计算1~5之间的数据之和,并输出总和
分析:
-
定义一个求和变量sum,初始化值是0
-
用for循环获取1~5的数据
-
把每一次获取到的数据累加到求和变量sum
sum = sum + x;或者sum += x; -
输出求和变量。
代码演示:
package cn.itcast.demo;
public class ForDemo3 {
public static void main(String[] args) {
//需求:计算1~5之间的所有数据之和。
//1.定义求和变量sum。
int sum=0;
//2.通过for循环获取1~5之间的数据
for (int i=1;i<=5;i++){
// i记录的就是:1~5之间所有的数字
//3.把获取到的数据依次累加给变量sum
//sum = sum + i;
sum +=i;
}
//4.打印结果
System.out.println(sum);
}
}
5.for循环案例4(累加思想)
需求:求出1~100之间偶数和
分析:
- 定义一个求和变量sum,初始化值是0;
- 获取1~100之间的数,用for循环实现
- 判断每一个数是否为偶数,是就累加,否则不做操作对2取余等于0,则为偶数x%2==0;
- for循环结束,输出求和变量的值
代码演示:
package cn.itcast.demo;
public class ForDemo4 {
public static void main(String[] args) {
//需求:计算1~100之间的所有偶数和
//1.定义一个求和变量sum。
int sum =0;
//2.获取1~100之间所有的数据
for(int i =1;i<=100;i++){
//循环体
//i的自己哦其实就是1~100之间的数字,只要判断i是否是偶数即可
//3.判断当前获取到的数据是否为偶数,是就累加
if(i%2==0){
//能走到这里,说明i是偶数,累加即可
sum+=i;
}
}
//4.打印结果
System.out.println("sum:"+sum);
}
}
6.for循环案例5
需求:在控制台输出所有的“水仙花数”;
分析:
- 水仙花数:所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身
- 举例:153是一个水仙花数:
1*1*1+5*5*5+3*3*3=1+125+27=153
步骤:
- 获取所有的三位数,即100~1000之间的数
- 获取每一个三位数的个数,十位,百位
个位:153%10 = 3
十位:153/10%10 = 5
百位:153/10/10%10 = 1 - 拿个位,十位,百位的立方和与该数本身进行比较,如果相等,则在控制台打印该数
代码演示:
package cn.itcast.demo;
public class ForDemo5 {
public static void main(String[] args) {
/*
需求:打印所有的水仙花数
水仙花解释:指的是一位三位数,其各位数字的立方和等于他本身,例如
1*1*1+5*5*5+3*3*3=1+125+27=153
*/
//1.通过for循环,获取所有三位数
for(int i =100;i<1000;i++){
//i表示就是所有的三位数
//2.获取该数据的个位、十位、百位数字
int ge=i%10;
int shi=i/10%10;
int bai=i/10/10%10;
//3.判断该数字是否是水仙花数,如果是,直接打印即可
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
//能走到这里,说明:是水仙花数
System.out.println(i);
}
}
}
}
7.for循环案例6(计数器思想)
需求:统计所有的“水仙花数”的个数
分析:
- 定义统计变量count,即计数器,初始化值为0
- 获取所有的三位数,即100~1000之间的数
- 判断每一个三位数是否为水仙花数,是则count自增1,count++
- 循环结束,输出计数器count的值
package cn.itcast.demo;
public class ForDemo6 {
public static void main(String[] args) {
//需求:打印所有的水仙花数的个数
//1.定义一个计数器,用来记录水仙花数的个数
int count = 0;
//2.获取到所有的三位数
for(int i=100;i<1000;i++){
//i记录的就是所有的三位数
//3.获取到该数字的个位,十位,百位数字
int ge=i%10;
int shi=i/10%10;
int bai=i/10/10%10;
//4.判断该数字是否是水仙花数,如果是,计数器自增1
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
//能走到这里,说明i是一个水仙花数
//count = count + 1;这三种方法均可
//count++;
++count;
}
}
//5.打印计数器的结果即可
System.out.println("count:"+count);
}
}
三、while循环
1.while循环语句格式
- 格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
} - 注意事项:
初始化语句可以省略
控制条件语句可以省略 - 执行流程
2.while循环案例1
需求:使用while循环在控制台输出5次“HelloWorld”
分析:
- 用for循环实现输出“HelloWorld”
- 用while循环实现输出“HelloWorld”
package cn.itcast.demo;
/**
* while循环的格式:
* 初始化语句:
* while(判断条件语句){
* 循环体语句;
* 控制条件语句;
* }
*/
public class WhileDemo1 {
public static void main(String[] args) {
//需求:打印5次“HelloWorld”
//方式一:通过for循环实现
for(int i =1;i<=5;i++){
System.out.println("HelloWorld");
}
System.out.println("--------------");
//方式二:通过while循环实现
//初始化语句
int i =1;
//判断条件语句
while(i<=5){
//循环体语句
System.out.println("HelloWorld");
//控制条件语句
i++;
}
}
}
3.while循环案例2
需求:求1~100之间的数据和
分析:
- 定义求和变量sum,初始化值为0
- 使用while循环获取1~100之间的数据
- 将每个数据累加到sum变量上
- 循环结束,输出sum的值
package cn.itcast.demo;
public class WhileDemo2 {
public static void main(String[] args) {
//1.需求:计算1~100之间的所有数据之和
//1.定义一个求和变量sum
int sum =0;
//2.通过while循环,获取1~100之间所有的数据‘
//初始化语句
int a =1;
//判断语句
while(a<=100){
//循环体语句
//3.将获取到的数据累加给变量sum
sum+=a;
//控制条件语句
a++;
}
//4,将sum的结果打印到控制台上
System.out.println("sum:"+sum);
}
}