23.打印由*號組成的倒三角形圖案

編程題目:

23.下面是一個由*號組成的4行倒三角形圖案。

要求:

(1)輸入倒三角形的行數,行數的取值3-21之間,對於非法的行數,要求拋出提示“非法行數!”;

(2)在屏幕上打印這個指定了行數的三角形。

在這裏插入圖片描述

示例代碼:

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("非法行數!");
		}
		
	}
}

結果顯示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章