Java基础-循环结构

366 阅读3分钟

2.4.1循环控制

2.4.1.1while循环
package Java基础03_循环结构;
/*
 whlie循环格式:
 while(判断条件语句){
     循环语句;
 }
 */
/*
 * 需求:循环打印输出10遍  ”while循环+i“
 */
public class While_Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i =0;
		while(i<10) {
			System.out.println("while循环"+i+"次");
			i++;
		}
/*
 * 需求:完成1=100的累加
 * 
 */
		int sum = 0;
		int x = 1;
		while(x<=100) {
			sum+=x;
			x++;
		}
		System.out.println(sum);
	}
}

2.4.1.2do-while循环
package Java基础03_循环结构;
/*
 do-while 循环的格式
 do{//先执行一遍循环体结构
 循环体语句
 }while(判断条件语句);//再去判断
 */
/*
 * 面试题:
 * while 循环和do-while循环的区别
 * while循环先判断条件表达式是否成立,才会执行循环语句体;
 * do_while循环,先执行一遍循环体语句,再去判断条件表达式是否成立。
 */

public class Do_While_Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i= 1;
				do {
					System.out.println("先执行这个do语句体"+i);
					i++;
				}while(i<10);
				/*
				 * 利用do-while完成1-100的累加
				 */
				int sum=0;
				int x = 1;
				do {
					sum+=x;
					x++;
					System.out.println(sum);
				}while(x<=100);
				System.out.println("最终累加数:"+sum);
	}
}
2.4.1.3for循环
for(初始化语句;判断语句;控制语句) {
	循环语句体;
}
示例Demo
for(int j=0;j<=10;j++){
System.out.println("循环次数"+j);
}
执行流程:
1:执行初始化语句
2:执行条件判断语句,看其返回值是true还是false
   如果是true,就执行循环体语句。
   如果是false,就结束循环。
3:执行循环体语句
4:执行控制条件语句
5:回到2步继续执行
package Java基础03_循环结构;
/*
for(初始化语句;判断语句;控制语句) {
	循环语句体;
}
示例Demo
for(int j=0;j<=10;j++){
System.out.println("循环次数"+j);
}
*/
public class For_Demo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=0; i<=10;i++) {
			System.out.println("这是For循环"+i+"次");
		}
		/*
		 * 需求:1-10的累乘
		 */
		//方式一:
		int x =1;
		for(int i=1;i<=10;i++) {
			x*=i;
		}System.out.println(x);//输出3628800
		
		//需求:求出1-100之间的偶数的和,用for+if
		int sum=0;
		for(int i =1;i<=100;i++) {
			if(i%2==0) {
				sum+=i;
			}
		}
		System.out.println(sum);//2550
		//方式二:
		int sum2=0;
		for(int i=0;i<=100;i+=2) {
			sum2+=i;
		}
		System.out.println(sum2);
		/*
		 * 水仙花数:
		 * 水仙花数(Narcissistic)也被称为超完全数字不变数自恋数,自幂数、阿姆斯壮数或阿 姆斯特朗数
		 * 
		 * 水仙花数是指一个3位数,他的每一个位上的数字的3次幂之和等于他本身(例如:1^3+5^3+3^3=153)
		 * 
		 * 在控制台输出100-1000的水仙花数
		 * 153=1*1*1+*3*3*3+5*5*5
		 * 问题来了:我怎么获得这个十位数,百位,个位数呢?
		 * 
		 * 个位:135%10=3
		 * 十位:153/10%10=5
		 * 百位:135/100=1
		 */
		System.out.println("---------------------------------");
		int count =0;
		for(int i=100;i<1000;i++) {
			int ge=i%10;
			int shi =i/10%10;
			int bai = i/100;
			
			if(i==(ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
				System.out.println(i);
				count++;
			}
		}
		System.out.println(count);
	}
}

while循环和for循环的区别:

使用区别:如果你想在循环结束后,继续使用控制条件的那个变量,就用while ,否则用for循环。

2.4.1.4双重循环

双重循环:一定要明白哪个循环先执行,哪个先结束,哪个循环再执行。

package Java基础03_循环结构;
/*
 * 双重循环:
 * 需求:
 * 请输入一个4行5列的星星(*)图案,利用for循环。
 * 效果图:
 *            ***** 
 *            *****
 *            ***** 
 *            *****
 
 */
public class ForForDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//一定要明白哪个循环先执行,哪个先结束,哪个循环再执行
		
		for(int i =0;i<4;i++) {
			for(int j = 0;j<5;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		/*
		 * 需求:请输入下列形状:
		 *                  *
		 *                  **
		 *                  ***
		 *                  ****
		 *                  *****
		 */
		for(int i=0;i<=5;i++) {
			for(int j=0;j<i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		/*
		 * 利用for循环打印九九乘法表
		 */
		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();
		}
		}
	}