2021-9-18-学习日志7-循环语句-for循环语句

1.循环语句

特征:重复做某件事情,具有明确的开始和停止标志。

循环结构的组成:

①初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样。

②条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去。

③循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情。

④条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。

循环结构对应的语法:

①初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作。

②条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体,例如:a < 3;

③循环体语句:这里可以是任意语句,这些语句将反复执行

④条件控制语句:这里通常是使用一条语句来改变 变量的值,从而达到控制循环是否继续向下执行的效果。常见i++,i--这样的操作。

1.2)for循环语句格式

格式:

for (初始化语句;条件判断语句;条件控制语句){

        循环体语句;

}

执行流程:

 ①执行初始化语句

②执行条件判断语句,看其结果是true,还是false

        如果是false,循环结束

        如果是true,继续执行

③执行循环体语句

④执行条件控制语句

⑤回到②继续执行 

/*
	for 循环
*/
public class forDemo{
	public static void main(String[] args){
		//需求:在控制台输出5次”HelloWorld“
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("--------");
		
		//用循环改进
		for (int i = 1; i <= 5; i++){
			System.out.println("HelloWorld");
		}
	}
}

DOS命令提示符窗口

C:\Users\Apple>d:

D:\>javac foeDemo.java

D:\>java foeDemo
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld
--------
HelloWorld
HelloWorld
HelloWorld
HelloWorld
HelloWorld

D:\>		
		

1.3)案例:输出数据

需求:在控制台输出1-5和5-1的数据

分析:

①反复进行输出的动作,使用循环结构

for (初始化语句,条件判断据,条件控制语句){

        循环体语句;

}

②从1开始到5结束,设置初始化从1开始

for (int i = 1;条件判断据,条件控制语句){

        循环体语句;

}

③从1开始到5 结束,设置判断条件为没有到5的时候继续执行,执行到超过5程序结束

for (int i =1;i <= 5; 条件控制语句){

        循环体语句;

}

④从1到5,每次增加1,设置条件控制每次+1

for (int i = 1; i <= 5; i++){

        循环体语句

}

⑤将反复进行的事情写入循环结构内部,打印对应数据

for (int i = 1; i <= 5; i++){

        System.our.ptintln(i);

}

/*
	案例:
	需求:在控制台输出1-5和5-1的数据
*/
public class forDemoTest{
	public static void main(String[] args){
		//for 循环语句 输出1-5
		for (int i = 1; i <= 5; i++){
			System.out.println(i);
		}
		System.out.println("--------");
		
		//for 循环语句 输出5-1
		for (int i = 5; i >= 1; i--){
			System.out.println(i);
		}
	}
}

DOS命令提示符窗口

C:\Users\Apple>

D:\>javac forDemoTest.java

D:\>java forDemoTest
1
2
3
4
5
--------
5
4
3
2
1

D:\>

1.4)案例:求和

需求:求1-5之间的数据和,并把求和结果在控制台输出

分析:

①求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0

int sum = 0;

②从1开始到5 结束的数据,使用循环结构完成

for (int i = 1; i <=5; i++){

       sum += i;

}

        System.out.println("sum+i");

/*
	案例:求和
	需求:求1-5之间的数据和,并把求和结果在控制台输出
*/
public class forDemoTest1{
	public static void main(String[] args){
		//for循环 
		int sum = 0;
		for (int i = 1; i <= 5; i++){ 
			sum += i;
			/*
				sum += 1;  等于   sum = sum + i;
				第一次:sum = sum + i = 0 + 1 = 1;
				第二次:sum = sum + i = 1 + 2 = 3;
				第三次:sum = sum + i = 3 + 3 = 6;
				第四次:sum = sum + i = 6 + 4 = 10;
				第五次:sum = sum + i = 10 + 5 = 1;
			*/	
		}
		System.out.println("1-5之间的数据和是:" + sum);
	}
}

DOS命令提示符窗口

C:\Users\Apple>

D:\>javac forDemoTest1.java

D:\>java forDemoTest1
1-5之间的数据和是:15

D:\>

1.5)案例:求偶书和

需求:求1-100之间的偶数和,并把求和结果在控制台输出

分析:

①对1-100的数据和与1-5的数据求和几乎完全一样,仅仅是结束条件不同

int sum = 0;

for (int i = 1; i <= 100; i++){

        sum += i;

}

②对1-100的偶数求和,需对求和操作添加限制条件

int sum = 0 ;

for (int i = 1; i <= 100; i++){

        if (执行的限制条件){

                sum += i;

        }

}

③限制条件是偶数才参与运算,因此条件应该是判断是否是偶数

int sum = 0;

for (int i = 1; i <= 100; i++){

        if (1 % 2 == 0){

                sum += i;

        }

}

④当循环执行完毕时,将最终数据打印出来

System.out.println("1-100之间的偶数和是:" + sum);

/*
	案例:求偶书和
	需求:求1-100之间的偶数和,并把求和结果在控制台输出
	分析:
		①对1-100的数据和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
		②对1-100的偶数求和,需对求和操作添加限制条件			
		③限制条件是偶数才参与运算,因此条件应该是判断是否是偶数
		④当循环执行完毕时,将最终数据打印出来
*/
public class forDemoTest2{
	public static void main(String[] args){
		//定义变量
		int sum = 0;
		for (int i = 1;i <= 100; i++){
		if (i % 2 == 0){
			sum += i;
			}
		}
		System.out.println("1-100之间的偶数和是:" + sum);
	}
}

DOS命令提示符窗口

C:\Users\Apple>d:

D:\>javac forDemoTest2.java

D:\>java forDemoTest2
1-100之间的偶数和是:2550

D:\>

1.6)案例:水仙花

需求:在控制台输出所有的“水仙花数”

什么是“水仙花数”?

①水仙花数是一个三位数

②水仙花数的各位、十位、百位的数字立方和等于原数

eg: 123      1^3 +2^3 + 3^3 = 1 + 8 + 27 = 36 ≠ 123   不是水仙花数

         371     3^3+7^3+1^3 = 27 + 343 +1 = 371 = 371  是水仙花数

分析:

①三位数的个位数字如何求

371        1就是原始数字对10进行取余运算的结果        371 % 10 = 1

②三位数的百位数字如何求

371        3就是原始数字除以100的结果(整数)        371 / 100 = 3

③三位数的十位数字如何求

371        371通过除以10,可以将7移动到各位上(整数)        371 / 10 = 37

              37通过对10进行取余运算可以得到最后一位的值7        37 % 10 = 7

④思考:任意数字在指定位上的数值如何求?

先使用整数操作将要求的数字移动到个位上,在使用取余操作取出最后一位。

eg:123456789 ,取 5 的话,就先除以 10000 取整 得12345 ,然后再 除以10 取余得到 5 

分析:

①输出所有的水仙花数必然要使用到循环,三位数范围:100 - 999

for (int i = 100;  i <= 999; i++){   

}

②不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才能进行输出

if (执行的限制条件){

}

③判定条件的是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等

if (? + ? + ? == 原数){

输出原数

}

④在计算之前获取三位数中每个位上的值

int a = 原数的个位;

int b = 原数的十位;

int c =原数的百位;

if (a * a * a + b * b * b + c * c * c == 原数)

综合分析:

①:先建立循环

②:取出三位数中个位、十位、百位数字

③计算是否满足条件,满足条件输出

/*
	案例:水仙花数
	需求:在控制台输出所有的“水仙花数”
		  什么是“水仙花数”?
		  ①水仙花数是一个三位数
		  ②水仙花数的各位、十位、百位的数字立方和等于原数
*/
public class forDemoTest3{
	public static void main(String[] args){
		/*	(与下方for 表示是一样的)
		for (int i = 100; 1 < 1000; i++){
			
		}                 
		*/
		for (int i = 100; i <= 999; i++){
			//再计算之前获取三位数中每个位上的值
			int a = i%10;
			int b = i/10%10; 
			int c = i/10/10%10;
			
			//判定条件是将三位数中的每个数值取出来,计算立方和后,与原始数字比较是否相等;
			if (a*a*a + b*b*b + c*c*c == i){
				//输出满足条件的数字就是水仙花数
				System.out.println(i);
			}			
		}
	}
}

DOS命令提示符窗口

C:\Users\Apple>d:

D:\>javac forDemoTest3.java

D:\>java forDemoTest3
153
370
371
407

D:\>

1.7)案例:统计

需求:统计“水仙花数”一共有多少个,并在控制太输出个数

分析:

①定义变量count,用于保存“水仙花数”的数量,初始值为0

int count = 0;

②在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值

if (a*a*a + b*b*b + c*c*c == 原数){

}

③打印输出最终结果

System.out.println("水仙花数共有:" + count +"个");

/*
	案例:统计水仙花数
	需求:统计“水仙花数”一共有多少个,并在控制太输出个数
*/
public class forDemoTest4{
	public static void main(String[] args){
		//定义变量count,用于保存“水仙花“的数量,初始值为0
		int count = 0;
		
		//输出所有水仙花数必然要使用循环,遍历所有的三位数,三位数从100开始,到999结束
		for (int i = 100; i < 1000; i++){
		
			//在计算之前获得三位数中每个伪上的值
			int a = i%10;
			int b = i/10%10;
			int c = i/10/10%10;
		
			//在判定水仙花数的过程中,满足条件不在输出,更改为修改count的值,使count+1
			if(a*a*a + b*b*b + c*c*c == i){
			count++;
			}
		}
		//打印输出最终结果
		System.out.println("水仙花数有:" + count + "个");
	}
}

DOS命令提示符窗口

C:\Users\Apple>d:

D:\>javac forDemoTest4.java

D:\>java forDemoTest4
水仙花数有:4个

D:\>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值