for循环,for循环嵌套

1、for循环

        好处:解决代码的冗余
        
        语法结构:
            for(表达式1;表达式2;表达式3){
                ...代码块/循环体...
            }
            
        理解:
            表达式1 -- 初始化变量
            表达式2 -- 判断条件
            表达式3 -- 更新变量
            
        执行步骤:
            1.初始化变量
            2.判断条件(结果必须是boolean类型)
                true  - 执行代码块,更新变量,重复第2个步骤
                false - 跳出整个循环语句

        //需求1:打印1~10的奇数数字
			for(int i = 1;i<=10;i+=2){
				System.out.println(i);
			}
		//需求2:打印10~1的偶数数字
			for(int i = 10;i>=1;i-=2){
				System.out.println(i);
			}

            小结:
        1.初始化变量不一定从0开始,设置为1或者10都是可以的,需要根据需求灵活变换
        2.更新变量不一定++,设置为+=2、--、-=2都是可以的,需要根据需求灵活变换

for循环特殊结构:

            int i = 0;
			for(;i<5;){
				System.out.println("数字 -- " + i);				
				++i;//等同于:i++;//在更新变量中写i++和++i没有区别
			}
			System.out.println(i);//5

死循环(永远跳不出的循环):

            for(;;){
				System.out.println("死循环");
			}//上面就是死循环了,永远跳不出来了,程序根本没有机会向下执行

伪死循环:

            for(int i = 5;i>2;i++){
				System.out.println("伪死循环");
			}//伪死循环:int类型它是有取值范围的,一直加到 21 亿 4 千七百多万,再加就是负的了

案例:循环录入5次int类型的数字,输出最大值

            Scanner scan = new Scanner(System.in);		
			//假设第一个数字为最大值
			System.out.println("请输入第1个数字:");
			int max = scan.nextInt();
			
			for(int i = 2;i<=5;i++){
				System.out.println("请输入第" + i + "个数字:");
				int num = scan.nextInt();
				if(max < num){
					max = num;
				}
			}
			System.out.println("最大值为:" + max);

注意:在循环中声明的变量,其作用域只能在循环中使用

 2、for循环嵌套

        需求1:打印以下图形
			****
			****
			****
			for(int i = 0;i<3;i++){//控制行数
				for(int j = 0;j<4;j++){//控制列数
					System.out.print("*");
				}
				System.out.println();//换行
			}
			
		需求2:打印以下图形
			*		i=0
			**		i=1
			***		i=2
			****	i=3
			*****	i=4
			for(int i = 0;i<5;i++){
				for(int j = 0;j<=i;j++){
					System.out.print("*");
				}
				System.out.println();
			}
			
		需求3:打印以下图形
			    *
			   **
			  ***
			 ****
			*****
            for(int i = 0;i<5;i++){
				for(int k = 0;k<4-i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<=i;j++){
					System.out.print("*");
				}
				System.out.println();
			}
		
		需求4:打印以下图形
			*****
			****
			***
			**
			*
            for(int i = 0;i<5;i++){
				for(int j = 0;j<5-i;j++){
					System.out.print("*");
				}
				System.out.println();
			}
		
		需求5:打印以下图形
			*****
			 ****
			  ***
			   **
			    *
                *
			for(int i = 0;i<5;i++){
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<5-i;j++){
					System.out.print("*");
				}
				System.out.println();
			}
		
		需求6:打印以下图形
			   *
			  ***
			 *****
			*******
            for(int i = 0;i<4;i++){
				for(int k = 0;k<3-i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<i*2+1;j++){//i*2+1:奇数
					System.out.print("*");
				}
				System.out.println();
			}
			
		需求7:打印以下图形
			   *
			  * *
			 *   *
			*******
            for(int i = 0;i<4;i++){//行
				for(int k = 0;k<3-i;k++){//列
					System.out.print(" ");
				}
				for(int j = 0;j<i*2+1;j++){//行
					//第一行 || 最后一行 || 第一列 || 最后一列
					if(i==0 || i==3 || j==0 || j==i*2){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
				}
				System.out.println();
			}
		
		需求8:打印以下图形
			*******
			 *****
			  ***
			   *
            for(int i = 0;i<4;i++){
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<7-i*2;j++){
					System.out.print("*");
				}
				System.out.println();
			}
		
		需求9:打印以下图形
			*******
			 *   *
			  * *
			   *
            for(int i = 0;i<4;i++){
				for(int k = 0;k<i;k++){
					System.out.print(" ");
				}
				for(int j = 0;j<7-i*2;j++){
					//第一行 || 最后一行 || 第一列 || 最后一列
					if(i==0 || i==3 || j==0 || j==7-i*2-1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}
				}
				System.out.println();
			}

 

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值