欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java --java基础 for循环和while循环,

来源: javaer 分享于  点击 19106 次 点评:270

java --java基础 for循环和while循环,


一、 for 循环

  • 作用: 循环的作用是让代码重复执行
  • 语法:
		  	for(表达式1;表达式2;表达式3){//注意这两个分号是必须的
		  		循环体
		     }
  • 表达式1:初始化循环前的参数,只执行一次

  • 表达式2:逻辑表达式,循环的判断条件,返回真,进入循环,返回家则退出循环

  • 表达式3:再次进入循环前执行的一般用来对变量赋值,循环的步长

  • for循环支持其中的3个表达式都没有表达式的 for(;;)分号是必须的

【例子】

			// 输出100遍好好学习
			for(int i=1;i<=100;i++){
						System.out.println("第"+i+"次好好学习");
			}
			
			int i=0;
			for(;;){
				i++;
				System.out.println("第"+i+"次好好学习");
				if(i>100){
					break;
				}
			}
		//输出第i门成绩的平均分
		Scanner input = new Scanner(System.in);
		System.out.print("请输入你的姓名:");
		String name = input.next();
		int sum=0;
		for(int i=1;i<=5;i++){
			System.out.print("请输入第"+i+"门课程的成绩:");
			int a=input.nextInt();
			sum+=a;
		}
		System.out.println(name+"的总成绩是"+sum+",平均成绩是"+sum/5.0);

二、while循环和DO while循环

语法:

while(逻辑表达式){    //逻辑表达式为真进入循环,为假则退出循环
	循环体
}
public class while_01 {

	public static void main(String[] args) {
		// 输出100次好好学习

		//while
		int i=0;
		while(i++<100){
			System.out.println("好好学习第"+i+"次");
		}
		System.out.println("-----------------------");
		
		// do while
		int j=1;
		do {
			System.out.println("好好学习第"+j+"次");
		}while(j++<100);
		
	}
}

  • do while 是先执行后判断,至少会输出一个条件。
  • 在大多数情况下while 和 do while还是可以相互转换使用。

for循环和while 循环的区别:

  • for 循环主要使用的场景,在进入循环之前就确定循环次数
  • while循环适用的场景较多的是循环的退出条件在循环中是不断变化,循环次数是不确定的。

【例1】
输入y ,输出 继续学习
输入n , 输出退出循环,输出完成学习

import java.util.Scanner;
public class while02 {

	public static void main(String[] args) {
		// 输入y ,输出 继续学习
//		输入n , 输出退出循环,输出完成学习
		Scanner input = new Scanner(System.in);
		System.out.println("学习完了吗?(y)是(n)否:");
		String YN = input.next();
		
		while("n".equals(YN)) {
			System.out.println("还不快去学习!");
			System.out.println("学习吗?(y)是(n)否:");
			YN = input.next();
		}
		System.out.println("学习完了,去玩吧!");

	}

}

【例2】
获取一个1-100的随机数
不断从控制台输入数字 输出猜大了
猜中了退出循环 输出猜了几次
3次及以下 输出真棒
4-7次 输出真厉害
8次及以上 输出继续努力

import java.util.Random;
import java.util.Scanner;
public class while03 {

	public static void main(String[] args) {
//		获取一个1-100的随机数
//		不断从控制台输入数字 输出猜大了
//		猜中了退出循环 输出猜了几次
//		3次及以下 输出真棒
//		4-7次 输出真厉害
//		8次及以上 输出继续努力
		
		// 电脑获取1~100的随机整数
		Random ran = new Random();
		int computer = ran.nextInt(100)+1;
		
		//从控制台输入一个数字
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数字:");
		int num = input.nextInt();

		int count = 1; //计数器
		while(computer!=num) {
			if(num>computer) {
				System.out.println("你猜大了!");
				System.out.println("请输入一个数字:");
				num = input.nextInt();
			}else {
				System.out.println("你猜小了!");
				System.out.println("请输入一个数字:");
				num = input.nextInt();
				
			}
			count++;
		}
		if(count<=3) {
			System.out.println("你真厉害!猜了"+count+"次就猜中了!");
		}else if(count<=7) {
			System.out.println("还不错嘛,猜了"+count+"次!");
		}else {
			System.out.println("再接再厉哦~你猜了"+count+"次才猜中~~");
		}
	}

}


【例3】
穷举法: 买奴隶男人3个金币,女人2个金币,小孩1个金币,现在有50个金币,要买30人,能怎么买?


public class while04 {

	public static void main(String[] args) {
		/* 男3 女2 孩1
			共50金币,买30人
			买多少?
		*/
		
		int m = 3;
		int w = 2;
		int c = 1;
		
		int count=0;
		
		for(int i=0;i<=(50/3);i++) {
			for(int j=0;j<=(50/2);j++) {
				for(int k=0;k<=50;k++) {
					if(i+k+j==30 && m*i+w*j+c*k==50) {
						System.out.println("男人买了"+i+"个,女人买了"+j+"个,小孩买了"+k+"个~");
						count++;
					}
				}
			}
			
		}
		System.out.println("一共有"+count+"种组合");

	}

}

【例4】

/*
		 * 利用双重循环 在控制台输出如下图形
		 * 5x5的矩阵
		 * *****
		 * *****
		 * *****
		 * *****
		 * *****
		 */
		for(int i=0;i<5;i++) {   //外层循环 控制行数
			for(int j=0;j<5;j++) {  //内层循环 控制个数
				System.out.print("*");   
			}
		}	
			System.out.println();


		/*
		 * *
		 * **
		 * ***
		 * ****
		 * *****
		 */

		for(int i=1;i<=5;i++) {
			for(int j=0;j<i;j++) {
				System.out.print("*");   
			}
			System.out.println();
		}


		/*
		 * *****
		 * ****
		 * ***
		 * **
		 * *
		 * 
		 */

		for(int i=5;i>=1;i--) {
			for(int j=i;j>=1;j--) {
				System.out.print("*");
			}
			System.out.println();
		}

		/*
		 * 乘法表
		 * 
		 */
		/*
		 * *
		 * **
		 * ***
		 * ****
		 * *****
		 */

		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(i+"*"+j+"="+(i*j)+" ");   
			}
			System.out.println();
		}

		/*
		 * 第一步:
		 *     *
		 *    ***
		 *   *****
		 * 第二步:
		 *  *******
		 *   *****
		 *    ***
		 *     *
		 *    
		 * 
		 */

		for(int i=0;i<=3;i++) {
			for(int j=4;j>i;j--) {
				System.out.print(" ");
			}
			for(int k=1;k<=2*i-1;k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=4;i>0;i--) {
			for(int j=i;j<4;j++) {
				System.out.print(" ");
			}
			for(int k=2*i-1;k>0;k--) {
				System.out.print("*");
			}
			System.out.println();
		}


		/*
		 * 请输入行数:6
		 * 行数必须为单数!
		 * 请输入行数:4
		 * 行数必须为单数!
		 * 请输入行数:7
		 *     *
		 *    ***
		 *   *****
		 *  *******
		 *   *****
		 *    ***
		 *     *
		 *    
		 * 
		 */
		import java.util.Scanner;
		Scanner input = new Scanner(System.in);
		System.out.print("请输入行数:");
		int line = input.nextInt();
		while(line%2==0) {
			System.out.println("请输入奇数!");
			System.out.print("请输入行数:");
			line = input.nextInt();
		}
		
		int up =line/2;
		int down=up+1;
		
		for(int i=0;i<=up;i++) {
			for(int j=down;j>i;j--) {
				System.out.print(" ");
			}
			for(int k=1;k<=2*i-1;k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=down;i>0;i--) {
			for(int j=i;j<down;j++) {
				System.out.print(" ");
			}
			for(int k=2*i-1;k>0;k--) {
				System.out.print("*");
			}
			System.out.println();
		}

/*
		 * 请输入行数:6
		 * 行数必须为单数!
		 * 请输入行数:4
		 * 行数必须为单数!
		 * 请输入行数:7
		 *     A
		 *    ABC
		 *   ABCDE
		 *  ABCDEFG
		 *   ABCDE
		 *    ABC
		 *     A
		 */
//		int c=65;
//		for(int i=1;i<=26;i++) {
//			System.out.println((char)c++);
//		}
		Scanner input = new Scanner(System.in);
		System.out.print("请输入行数:");
		int line = input.nextInt();
		while(line%2==0) {
			System.out.println("请输入奇数!");
			System.out.print("请输入行数:");
			line = input.nextInt();
		}
		
		int up =line/2;
		int down=up+1;
		
		for(int i=0;i<=up;i++) {
			int c=65;
			for(int j=down;j>i;j--) {
				System.out.print(" ");
			}
			for(int k=1;k<=2*i-1;k++) {
				System.out.print((char)c++);
			}
			System.out.println();
		}
		for(int i=down;i>0;i--) {
			int c=65;
			for(int j=i;j<down;j++) {
				System.out.print(" ");
			}
			for(int k=2*i-1;k>0;k--) {
				System.out.print((char)c++);
			}
			System.out.println();
		}
		
		

	}

相关文章

    暂无相关文章
相关栏目:

用户点评