java循环结构01_for循环结构

1.for循环语法

【语法格式】

for(初始化表达式; 循环条件表达式; 循环后的操作表达式) {
	执行语句;
}

在这里插入图片描述

重点:掌握for循环的执行顺序。初始化表达式最先执行,并且在循环过程中只执行一次。

2.for循环注意点

  1. “循环初始化表达式”最先执行,并且永远只执行一次!

  2. 在“循环初始化表达式”中声明的变量,我们称之为“循环变量”。

    “循环变量”属于局部变量,只能在循环中使用,不能在循环之外使用。

  3. 请问以下代码输出的结果是什么???

// 演示一
int i = 1; // 出生	
for(; i <= 100; i++) {
	System.out.println(i);
}
System.out.println("循环之外:" + i); // 输出:101

// 演示二
for(int i = 10, j = 2; j < 7; j += 3, i -= 2) {
	System.out.println("i:" + i + " j:" + j);
}
// 第一趟输出:"i:10 j:2"
// 第二趟输出:"i:8  j:5" 
  1. “循环初始化表达式”和 “循环后的操作表达式”没有限制,只需要符合语法即可!

    “循环条件表达式”要求返回的结果必须是boolean类型,否则编译错误!

3.for循环练习

1、 输出0(包含)到100(包含)之间的数, 以递减的方式实现;

for(int i = 100; i >= 0; i--) {
	System.out.println(i);
}

2、 输出1到100之间的奇数;

/**
 * 步骤分析
 * 	 a)通过for循环,获得[1, 100]之间的所有整数,假设循环变量为i。
 *	 b)在循环体中,判断i是否为奇数。	
 *		  当i%2!=0时,证明i是一个奇数!		
 */
for(int i = 1; i <= 100; i++) {
	if(i % 2 != 0) {
		System.out.println("奇数:" + i);
	}
}

3、 输入一个正整数n,计算1+2+3+…+n的和;

/**
 * 步骤分析:
 *	 a)通过Scanner获得一个正整数,假设使用变量n来保存。
 *   b)通过for循环,获得[1, n]之间所有的正整数,假设循环变量为i。
 *   c)在循环前面定义一个变量(sum),用于保存1+2+3+…+n的和。
 */
// 1.通过Scanner获得一个正整数
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = input.nextInt();
// 2.通过for循环,获得[1, n]之间所有的正整数
int sum = 0; // sum出生
for(int i = 1; i <= n; i++) {
	// 3.计算1+2+3+…+n的和
	sum += i;
}
System.out.println("sum:" + sum);

4、 输入一个正整数n,计算1-2+3-4+5-6+…-(n-1)+n的和;

/**
 * 步骤分析:
 *	  a)通过Scanner获得一个正整数,假设使用变量n来保存。
 *	  b)通过for循环,获得[1, n]之间所有的正整数,假设循环变量为i。	
 * 	  c)在循环前面定义一个变量(sum),用于保存1-2+3-4+5-6+…-(n-1)+n的和;	
 *			当i为奇数时,执行累加操作;当i为偶数时,执行累减操作。
 */
// 1.通过Scanner获得一个正整数
Scanner input = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = input.nextInt();
// 2.通过for循环,获得[1, n]之间所有的正整数
int sum = 0;
for(int i = 1; i <= n; i++) {
	// 3.计算1-2+3-4+5-6+…-(n-1)+n的和
	if(i % 2 == 0) { // 偶数
		sum -= i;
	}
	else { // 奇数
		sum += i;
	}
}
System.out.println(sum);

5、 输出1到1000之间既能被5整除又能被3整除的数,并且每行输出5个。

/**
 * 步骤分析:
 *	  a)通过for循环获得[1, 1000]之间所有的整数,假设循环变量为i。
 *	  b)在循环体中,判断i是否既能被5整除又能被3整除,满足该条件则输出i的值。	
 *		  输出i的值时,不要做换行操作。 System.out.print(i);
 *	  c)把符合条件的数每行输出五个!
 *		  1)定义一个变量(count),用于保存符合条件数的个数。
 *		  2)当i既能被5整除又能被3整除,则符合条件的数+1。
 *		  3)判断count的值为5的倍数,则执行换行操作!
 */
// 1.通过for循环获得[1, 1000]之间所有的整数
// a)定义一个变量,用于保存符合条件数的个数。
int count = 0;
for(int i = 1; i <= 1000; i++) {
	// 2.判断i是否既能被5整除又能被3整除
	if(i % 5 == 0 && i % 3 == 0) {
		// 满足以上条件,则输出i的值
		// System.out.print(i + '\t'); // 错误
		System.out.print(i + "\t");    // 正确
		// b)当i既能被5整除又能被3整除,则符合条件的数+1。
		count++;
		// c)判断count的值为5的倍数,则执行换行操作!
		if(count % 5 == 0) {
			System.out.println();
		}
	}
}

6、 求100到999之间的水仙花数。水仙花数的每个位上的数字的3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

/**
 * 步骤分析:
 *	 a)通过for循环获得[100, 999]之间所有的整数,假设循环变量为i。
 *   b)在循环体中,获得i的个位数(bit1)、十位数(bit2)和百位数(bit3)。
 *	 c)要求满足:bit1*bit1*bit1 + bit2*bit2*bit2 + bit3*bit3*bit3 == i	
 */
// 1.通过for循环获得[100, 999]之间所有的整数
for(int i = 100; i < 1000; i++) { // i = 153
	// 2.获得i的个位数(bit1)、十位数(bit2)和百位数(bit3)
	int bit1 = i % 10;
	int bit2 = i % 100 / 10;
	int bit3 = i / 100;
	// 3.要求满足:bit1*bit1*bit1 + bit2*bit2*bit2 + bit3*bit3*bit3 == i
	if(bit1*bit1*bit1 + bit2*bit2*bit2 + bit3*bit3*bit3 == i) {
		System.out.println("水仙花数:" + i);
	}
}

7、 编程找出四位整数abcd 中满足下述关系的数,(ab+cd)*(ab+cd)=abcd(例如:(20 + 25) * (20 + 25)= 2025)。

/**
 * 步骤分析:
 *	 a)通过for循环获得[1000, 9999]之间所有的整数,假设循环变量为i。
 *   b)在循环体中,获得i的千位百位(ab)和十位个数(cd)。
 *		 例如:i的值为2025,那么i%100就得到了25(cd),i/100就得到20(ab)。	
 *	 c)要求满足:(ab+cd)*(ab+cd) == i	
 */
// 1.通过for循环获得[1000, 9999]之间所有的整数
for(int i = 1000; i < 10000; i++) { // i = 2025
	// 2.获得i的千位百位(ab)和十位个数(cd)。
	int ab = i / 100;
	int cd = i % 100;
	// 3.要求满足:(ab+cd)*(ab+cd) == i
	if((ab+cd)*(ab+cd) == i) {
		System.out.println(i);
	}
}

ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。

发布了55 篇原创文章 · 获赞 0 · 访问量 782

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104639502