超好用的for循环练习题

一、计算1~1000的和

public static void main(String[]args)
	{
		System.out.println("==第一题==");
		/*定义临时变量*/
		int i= 0 ;
		for(int y = 1 ; y<= 1000 ;y++)
		{
			/*将每次循环到的结果存入临时变量中*/
			i= y + i ;
		}
		/*循环结束后,打印变量中i的值*/
		System.out.println("==结果=="+i);		
	}

答案:
在这里插入图片描述

二、计算1~10的阶乘的和

public static void main(String[]args)
	{
		/*什么是阶乘:通常用10!表示10的阶乘(n! = (n-1)n)
		 * 			  阶乘:10!=1*2*3*4*....*10
		 * 		     10的阶乘的和就是:1!+2!+3!+4!+5!+6!....+10!
		 */
		System.out.println("==第二题==");
		/*定义临时变量i:计算每一个阶乘的值*/
		int x = 1 ;
		/*定义临时变量y:计算每个阶乘的和*/
		int y = 0 ;
		for(int i = 1 ; i <= 10 ;i++)
		{
			/*计算每个阶乘的结果*/
			x = x * i ;
			/*计算每个阶乘的和*/
			y = y + x ;
		}
		/*打印输出结果y*/
		System.out.println("==输出结果=="+y);
	}
	

答案:
在这里插入图片描述

三、打印出1~100内的所有质数

public static void main(String[] args)
	{
		/*什么是质数
		 * 			质数是只能被1和自身整除的数叫质数
		 * 			例如:1、3、5...
		 */
		System.out.println("==第三题==");
		/*循环要从2开始,因为1被谁除都是本身,会使本代码无意义*/
		for(int i = 2 ; i <= 100; i++)
		{
			/*定义布尔布尔表达式x为true*/
			boolean x = true ;
			/*因为是两数相除,所有要定义第二个循环变量j
			 *外层循环一次,内层循环一遍 
			 *j必须小于i,如果出现两数相等的情况,必定被整除,将无意义
			 */
			for(int j = 2 ; j< i ; j++)
			{
				/*如果两数求余结果等于0,说明存在1和本身以外其他数,将不能被称作质数*/
				if(i % j == 0 )
				{
					/*不是质数的数,将不需要进行后面的运算,直接终止本次循环即可*/
					x = false;
					break;
				}
			}
			/*如果没有被整除的情况,就是质数*/
			if(x)
			{
				/*打印输出结果*/
				System.out.println("==结果=="+i);
			}
		}			
	}

答案:
在这里插入图片描述

四、请打印100~999所有的水仙花数


	public static void main(String[]args)
	{
		/*什么是水仙花数
		 * 		水仙花数,各位的立方相加等于自己
         * 		例:153:1的立方+3的立方+5的立方等于自己
		 */
		System.out.println("==第四题==");
		
		for(int i = 100 ; i <= 999 ; i++)
		{
			/*三位数除以100可以获取到百位上的值:将变量赋给x*/
			int x = i/100 ;
			/*三位数对100求余,获取到个位数和十位数,再除以10求余可以获得十位上的数字:将变量赋值给y*/
			int y = i%100/10;//个位
			/*三位数对10求余可以获取到个位上的数字:将变量赋给y*/
			int z = i%10;
			/*如果每个变量的立方相加等于这个数i说明是水仙花数:将结果输出*/
			if(x * x * x + y * y * y + z * z * z == i)
			{
				System.out.println("==结果=="+i);
				
			}
		}
	}

答案:
在这里插入图片描述

五、请打印1 --100以内的数,如果被3整除,打印pig, 如果被5整除,打印dog, 既被3又被5整除的数,打印cat;

public static void main(String[]args)
	{
		for(int i = 1 ; i<=100 ; i++)
		{
			/*没有余数,说明被整除*/
			if(i % 3 == 0 )
			{
				System.out.println("==pig=="+i);
			}
			if(i % 5 == 0)
			{
				System.out.println("==dog=="+i);
			}
			/*添加短路与,增加多个判断结果*/
			if((i % 5 == 0) && (i % 3 == 0))
			{
				System.out.println("==cat=="+i);
			}
		}
	}

答案:
在这里插入图片描述

六、请打印由“*”组成的矩形

public static void main(String[]args)
	{
		/*矩形就是长方形
		 * 
		 */
		System.out.println("==第六题==");
		for(int i = 1 ; i<= 10 ; i++)
		{
			/*外层循环是列,内层循环时是行
			 *外层循环一次,内层循环一周
			 * 
			 */
			for(int y = 1 ;y<=10 ; y++ )
			{
				System.out.print("*");
			}
			System.out.println(" ");
		}
	}

答案:
在这里插入图片描述

七、请打印99乘法表

public static void main(String[]args)
	{
		/* 九九乘法表由三部分组成,两个乘数一个和,所以有两个循环变量 */
		for(int i = 1; i <= 9 ; i++ )
		{
			/* 为了不会出现重复的计算方程式,内循环的数不可以比外循环的数大*/
			for(int y = 1; y <= i ; y++)
			{
				/*打印结果,"/t"增加空格*/
				System.out.print(i+"*"+ y +"="+i*y +"\t");
			}
			System.out.println();
		}
	}

答案:
在这里插入图片描述

八、请打印等腰的实心三角形

public static void main(String[]args)
 {
 	/*打印三角形需要由来两部分组成
 	 * 一部分是空格区域,一部分是由“*”组成的区域 
 	 * 外层循环是行,内层循环是列
 	 * 通过图片我们可以看出,每行都是有两部分组层的:空格和*
 	 * 所以在外循环中,需要两个内循环
 	 */
 	for(int i = 1 ; i <= 10 ; i++)
 	{
 		/*空白区域是需要逐渐递减的,通过10-i的方式逐渐建减少空格的数量*/
 		for(int y = 1; y <= 10-i ;y++)
 		{
 			System.out.print(" ");
 		}
 		/*三角形区域,可以第一排是一个,第二排三个,第三排是五个,按照这个规则,
 		 * 我们可以将z每行的排列个数设置为(2*i)-1即可*/
 		for(int z = 1 ; z <= (2*i)-1 ; z++)
 		{
 			System.out.print("*");
 		}
 		System.out.println();
 	}
 }

答案:
在这里插入图片描述

九、请打印镂空的等腰三角形

public static void main(String[]args)
	{
		System.out.println("==第九题==");
		
		/*打印三角形需要由来两部分组成
		 * 一部分是空格区域,一部分是由“*”组成的区域 
		 * 外层循环是行,内层循环是列
		 * 通过图片我们可以看出,每行都是有两部分组层的:空格和*
		 * 所以在外循环中,需要两个内循环
		 */
		for(int i = 1 ; i <= 10 ; i++)
		{
			/*空白区域是需要逐渐递减的,通过10-i的方式逐渐建减少空格的数量*/
			for(int y = 1 ; y <= 10-i ; y++)
			{
				System.out.print(" ");
			}
			/*三角形区域,可以第一排是一个,第二排三个,第三排是五个,按照这个规则,
			 * 我们可以将z每行的排列个数设置为(2*i)-1即可
			 */
			for(int z = 1 ;z <= (i*2-1) ; z++)
			{
				/*因为是打印是镂空三角形,所以只要在每行的第一个和最后一个添加*号就可以了*/
				if(z== 1 || z == (i*2-1) || i==10)
				{
					System.out.print("*");
				/*其他镂空的地方用空格代替*/
				}else
				{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}

答案:
在这里插入图片描述

十、请打印菱形

public static void main(String[]args)
	{
		/*菱形可以拆分为两个实心的三角形,所有我们将用两个for循环拼接形成*/
		System.out.println("==第十一题==");
		/*和实心三角形原理一样,先打印一个实心三角形*/
		for(int i = 1 ; i <= 10 ; i++)
		{
			for(int y = 1 ; y<=10-i ; y++)
			{
				System.out.print(" ");
			}
			for(int z= 1 ; z <= (i*2-1) ; z++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
		/*菱形的下半部分和上半部分的原理一样,
		 *区别就在于将空白部分的区域执行顺序和实心部分的实心区域的执行过程调换顺序就可以了*/
		for(int i = 1 ; i <= 10 ; i++)
		{
			for(int y = 1 ;y <=i ;y++ )
			{
				System.out.print(" ");	
			}
			for(int z= 1 ; z <=(10-i)*2-1 ; z++)
			{
				System.out.print("*");
			}
			System.out.println();
		}
	}

答案:
在这里插入图片描述

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值