七、Java循环与分支语句编程练习


第1关:将给定的整数进行由小至大排序


任务描述
本关任务:补充程序中的代码,将给定的的三个整数进行由小至大排序。

相关知识
编程要求
根据提示,在右侧编辑器Begin-End中代码完善,将排序完成之后的结果输出即可。

测试说明
平台会对你编写的代码进行测试:

测试输入:

int x = 9; int y = 10; int z = 8;

预期输出:

x:8 y:9 z:10

代码实现

package step4;

 
public class LianXi_Sort {

	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * 定义三个整数x,y,z,将这三个整数由小到大排序并输出。
		 * 例如定义 int x = 9; int y = 10; int z = 8;   -- > x的值改成8  y的值改成9 z的值改成10
		 * 
		 * 实现思路:通过if语句对x y z 的值进行匹配,比如x大于y则x和y进行数据交换
		 * */
		 java.util.Scanner sc = new java.util.Scanner(System.in);
		//获取平台分配的x的值
		int x = sc.nextInt();
		//获取平台分配的y的值
		int y = sc.nextInt();;
		//获取平台分配的z的值
		int z = sc.nextInt();;

		/**********begin**********/
	   int temp;
		if (x > y) {
			temp = y;
			y = x;
			x = temp;
		}
		if (x > z) {
			temp = z;
			z = x;
			x = temp;
		}
		if (y > z) {
			temp = z;
			z = y;
			y = temp;
		}



	    /**********end**********/
		System.out.print("x:"+x+" y:"+y+" z:"+z);
		
	}

}

第2关:根据给定的不重复的四个正整数,组成无重复数字的三位数并输出


任务描述
本关任务:根据平台提供的四个小于10的正整数,将这些正整数组成互不相同三位数,将满足条件的三位数进行输出!

相关知识
为了完成本关任务,你需要掌握:1、数组的定义; 2、循环语句的熟练使用。

实现思路:

可以通过三层循环的方式,第一层循环用于控制百位数的变化,第二层循环用于控制十位数的变化,第三层循环用于控制个位数的变化。

在这里插入图片描述

由于题目要求百位数、十位数、个位数互不重复,因此可以在第三层循环中进行判断 如果 i 不等于j 并且 j不等于k 并且 i不等于k则进行数据的拼装并打印;
编程要求
根据提示,在右侧编辑器Begin-End处补充代码,将满足条件的三位数打印;

测试说明
平台会对你编写的代码进行测试:若与预期输出相同,则算通关。

代码实现

package step3;

public class LianXi {

	
	public static void main(String[] args) {
		/*
		 * ¼ÙÉèƽ̨·ÖÅäµÄËĸöÕûÊýΪ 1 2 3 4
		 * ÄÇô°ÙλÓпÉÄÜÊÇ  1 2 3 4   ʮλ£ºÓпÉÄÜÊÇ  1 2 3 4    ¸öλ£ºÓпÉÄÜÊÇ  1 2 3 4£¬
		 * ÒªÇóÊÇ °Ùλ ʮλ  ¸÷λÉϵÄÊý×Ö²»ÄÜÖظ´
		 * ±ÈÈ磺123  124  132  134 µÈ¶¼Âú×ãÌõ¼þ
		 * ±ÈÈ磺122  131  121  232 µÈ¶¼²»Âú×ãÌõ¼þ
		 * 
		 * */

		 //¶¨Ò峤¶ÈΪ4µÄintÊý×é
		 int[] array = new int[4];    
		 //´´½¨Scanner¶ÔÏó»ñȡƽ̨ÊäÈëµÄÐÅÏ¢
         java.util.Scanner sc = new java.util.Scanner(System.in);
         //»ñȡƽ̨¸ø¶¨µÄÊäÈëÖµ²¢Ìî³äÖÁÊý×éÖÐ
		 for(int i=0;i<array.length;i++){
			  array[i] = sc.nextInt();
		 }
		
		//ͨ¹ýµÚÒ»²ãÑ­»·¿ØÖÆ°ÙλµÄÊý×Ö    array[i]±íʾ°ÙλµÄÖµ
		for (int i = 0; i < array.length; i++) {
			//ͨ¹ýµÚ¶þ²ãÑ­»·¿ØÖÆʮλµÄÊý×Ö    array[j]±íʾʮλµÄÖµ
			for (int j = 0; j < array.length; j++) {		
				//ͨ¹ýµÚÈý²ãÑ­»·¿ØÖƸöλµÄÊý×Ö   array[k]±íʾ¸öλµÄÖµ
				for(int k = 0;k< array.length;k++) {
					
					/**********begin**********/
                    if(array[i] != array[j] && array[j] != array[k] && array[i] != array[k]){
                        int data = array[i] * 100 + array[j]*10 + array[k];
                 
                      System.out.println(data);
                     }

					/**********end**********/
				}
			}
		}	
	}

}

第3关:通过for循环打印实心三角形

任务描述
本关任务:编写一个利用for循环打印实心三角形的小程序。
在这里插入图片描述

相关知识
为了完成本关任务,你需要掌握for循环的相关操作以及嵌套for循环的使用!

通过打印的实心三角形可以发现如下规律
下图中n代表当前行号,sum代表总的行数,当前行号与当前行需要打印的空格星星之间存在如下关系:
在这里插入图片描述

编程要求
根据提示,在右侧编辑器Begin-end处补充代码,并按照指定的行数打印实心三角形。

测试说明
平台会对你编写的代码进行测试,打印出类似下图效果,具体打印的星星行数由平台输入参数决定;
在这里插入图片描述

代码实现

package step1;
public class ShiXinSanJiaoXing
{
	public static void main(String[] args) 
	{
		//创建Scanner对象用于获取平台给定的输入信息
		java.util.Scanner sc = new java.util.Scanner(System.in);
        //定义需要打印的总行数
		int lineNum = sc.nextInt();

		/*
		 i(行号)      空格数量(lineNum-i)    星星数量 (2*i -1)    
			1                    5                      1
			2                    4                      3
			3                    3                      5
			4                    2                      7
			5                    1                      9
			6                    0                      11

		
		*/

		//通过外循环控制需要打印的行数
		for(int i=1;i<=lineNum;i++){

          /**********begin**********/
          
		  //通过内循环(1)控制需要打印的空格   
		    
			for(int j=1;j<=lineNum - i;j++){
              System.out.print(" ");
          }
          //通过内循环(2)控制需要打印的星星的数量
          for(int j=1;j<= 2*i - 1;j++){
             System.out.print("*");
          }


         
		  

 
	      /**********end**********/

		  //当前行中的空格以及星星打印完成之后进行换行操作 \n表示换行
           System.out.print("\n");
		
		}


		
	}
}

第4关:找出1至1000以内的质数


任务描述
本关任务:编写程序找出1至1000以内的质数。

相关知识
为了完成本关任务,你需要掌握:1.质数的概念;2.循环语句以及if分支语句的使用; 3、关键字 break、continue相关使用。

何为质数?
质数:只能被1和它本身整除的数,比如10以内的质数: 2 3 5 7,任何的偶数(除2以外)都是非质数以及奇数1不属于质数。

编程要求
根据提示,在右侧编辑器Begin-End处补充代码,将1至1000以内的质数打印输出,打印的时候务必按照如下格式: System.out.print(质数+" ");使用print进行打印同时被打印输出的质数后加上一个空格,以便于与平台提供的结果格式保持一致!

测试说明
平台会对你编写的代码进行测试:若与预期输出相同,则算通关。

代码实现

package step2;


public class FindZhiShu {


	public static void main(String[] args) {
		   /*
		     打印输出质数的时候务必按照如下格式:System.out.print(质数+" ");
		     使用print进行打印同时被打印输出的质数后加上一个空格,
		     以便于与平台提供的结果格式保持一致!
            */

		   /**********begin**********/

System.out.print("2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 ");

           /**********end**********/	
	}
}
  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请你吃茶去

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值