23.打印由*号组成的三角形图案

编程题目:

23.下面是一个由*号组成的4行倒三角形图案。
要求:
(1)输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;
(2)在屏幕上打印这个指定了行数的三角形。

23.打印由*号组成的三角形图案_第1张图片

示例代码:

package program.calculation.exercise23;

import java.util.Scanner;

/**
 * 23.下面是一个由*号组成的4行倒三角形图案。
 * 	要求:(1)输入倒三角形的行数,行数的取值3-21之间,
 *          对于非法的行数,要求抛出提示“非法行数!”;
 * 		(2)在屏幕上打印这个指定了行数的三角形。
 * 
 *		*		   *******		  *		*******
 *		***		   *****	    ***		  *****
 *		*****	   ***		  *****			***
 *		*******	   *		*******			  *
 *		   A        B          C           D
 */

public class Lines {
	public static void main(String args[]) {
	
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		System.out.print("请输入行数:");
		int lines = scanner.nextInt();
		
		printA(lines);//打印直角靠左正三角形
		printB(lines);//打印直角靠左倒三角形
		printC(lines);//打印直角靠右正三角形
		printD(lines);//打印直角靠右倒三角形
		
	}
	
	private static void printA(int lines){
		
		System.out.println("直角靠左正三角形");
		if (lines>3 && lines<21) {
			//外层循环控制行数(i行数下标)
			for (int i=0;i<lines;i++) {
				//内层循环控制每一行星数(j每一行星数下标)
				for (int j=0;j<=i*2;j++) { 
					System.out.print("*");
				}
				System.out.println();
			}
		}else{
			System.out.println("非法行数!");
		}
		
	}
	
	private static void printB(int lines){
		
		System.out.println("直角靠左倒三角形");
		if (lines>3 && lines<21) {
			//外层循环控制行数(i行数下标)
			for (int i=lines-1;i>=0;i--) {//倒三角形,下标反过来递减
				//内层循环控制每一行星数(j每一行星数下标)
				for (int j=0;j<=i*2;j++) { 
					System.out.print("*");
				}
				System.out.println();
			}
		}else{
			System.out.println("非法行数!");
		}
		
	}
	
	private static void printC(int lines){
		
		System.out.println("直角靠右正三角形");
		if (lines>3 && lines<21) {
			//外层循环控制行数(i行数下标)
			for(int i=0;i<lines;i++){ 
				//本次循环控制空格数
                for(int j=(lines-1)*2;j>i*2;j--){ //空格组成倒三角形   
                    System.out.print(" ");    
                }
                //本次循环控制星数
                for(int j=0;j<=i*2;j++){  //星星组成正三角形  
                    System.out.print("*");    
                }    
                System.out.println();    
            }    
		}else{
			System.out.println("非法行数!");
		}
		
	}
	
	private static void printD(int lines){
		
		System.out.println("直角靠右倒三角形");
		if (lines>3 && lines<21) {
			//外层循环控制行数(i行数下标)
			for (int i=lines-1;i>=0;i--) {//倒三角形,下标反过来递减
				//本次循环控制空格数
				for(int j=(lines-1)*2;j>i*2;j--){    
                    System.out.print(" ");    
                } 
				//本次循环控制星数
                for(int j=0;j<=i*2;j++){    
                    System.out.print("*");    
                }   
                System.out.println();  
			}
		}else{
			System.out.println("非法行数!");
		}
		
	}
}

结果显示:

23.打印由*号组成的三角形图案_第2张图片

你可能感兴趣的:(Java编程(Java,Program),#,Java编程06:算法应用)