Java基础——循环嵌套输出直角三角形、菱形、九九乘法表等

前言:该类问题思路是相同的,都是双重for循环实现,区别在于输出的内容不同或者for循环中控制条件的不同。外循环一般控制行数,内循环一般控制列数。下面书写具体代码。

1、输出倒直角三角形:

思路:

(1)图形有很多行,每一行对应不同个数,想到for嵌套

(2)外循环控制行数,内循环控制个数

(3)每一行的个数随着行数的增加减一,第一行的个数最多,因此应该用第一行的个数减去行数就是每一行应该输出的个数

(4)每次内循环结束后应该换行

/*

倒直角三角形
*****
****
***
**
*

*/


class ForTest01
{
    public static void main(String [] args){
        for(int x=0;x<=4;x++){
            for(int y=0;y<=4-x;y++){//或者for(int y=x;y<=4;y++)
                System.out.print("*");
            }
            System.out.print("\n");
        }
    }
}

2、正直角三角形

/*

正直角三角形
*
**
***
****
*****

*/
class ForTest02
{
    public static void main(String [] args){
        for(int x=0;x<=4;x++){
            for(int y=0;y<=x;y++){
                System.out.print("*");
            }
            System.out.print("\n");
        }
    }
}

 3、输出由递减数字组成的倒直角三角形,此处的三角形虽然输出内容改变,但是图形没有改变,只需要再循环中根据控制条件的改变输出对应的值即可。

/*
练习3:输出
43210
3210
210
10
0

*/
class ForTest03
{
    public static void main(String [] args){
        for(int x=0;x<=4;x++){
            for(int y=4-x;y>=0;y--){
                System.out.print(y);
            }
            System.out.print("\n");
        }
    }
}

4、输出由数字组成的正直角三角形,每行的数字相同

/*
输出
1
22
333
4444
55555
*/
class ForTest03
{
    public static void main(String [] args){
        for(int x=0;x<=4;x++){
            for(int y=4;y>=x;y--){
                System.out.print(y);
            }
            System.out.print("\n");
        }
    }
}

5、输出倒等腰三角形

思路1:可以将等腰三角形放在坐标轴上,横轴代表j,数轴代表i,可以观察到三角形是由三条直线所构成的,因此算出三条直线的方程式,观察所围成的三角形上的点分别在三条线的上方还是下方,得出范围即可,在范围内的输出*,不在的输出空格

/*
输出
* * * * *
 * * * *
  * * *
   * *
    *

*/
class ForTest05{
    public static void main(String [] args){
        for(int i=1;i<=5;i++){
            for(int k=1;k<i;k++){
                System.out.print(" ");
            }
            for(int j=i;j<=5;j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}

空心等腰梯形

import java.util.Scanner;
class Homework02{
	public static void main(String [] args){
		int n = new Scanner(System.in).nextInt();
		for(int i = 0;i<n;i++){
			for(int j = 0;j<2*n-1;j++){
				//if(i+j>n&&j-i<n&&i<=n){
				if(i+j==n-1||j-i==n-1||i==n-1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
				//System.out.print("*");
			}
			System.out.println();
		}
	}
}

6、输出九九乘法表

class ForTest06{
    public static void main(String [] args){
        for(int x=1;x<=9;x++){
            for(int y=1;y<=x;y++){
                System.out.print(y+"*"+x+"="+(x*y)+"\t");
            }
            System.out.println();
        }
    }
}

7、输出菱形,菱形需要四条边才能围成,相应的判断条件为四个

/*
			    *
			   ***
			  *****
			 *******
			  *****
			   ***
			    *	
*/
Scanner scanner=new Scanner(System.in);
System.out.println("请输入菱形的边长:");
int n=scanner.nextInt();

for(int i=1;i<=2*n-1;i++){
	for(int j=1;j<=2*n-1;j++){
		//有的时候是输出*,有的时候是输出空格。
		if(i+j<=n||i-j<=-n||i-j>=n||i+j>=3*n){
			System.out.print(" ");
		}else{
			System.out.print("*");
		}
	}
		System.out.println();
}

空心菱形

import java.util.Scanner;
class RhombusPrint{
	public static void main(String [] args){
		int n = new Scanner(System.in).nextInt();
		for(int i=1;i<=2*n-1;i++){
			for(int j=1;j<=2*n-1;j++){
				/*if(i+j==n||i+j==3*n||i-j==n||j-i==n){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}*/
				if(i+j>n&&i+j<3*n&&i-j<n&&j-i<n){
				//空心菱形if(i+j==n+1||i+j==3*n-1||i-j==n-1||j-i==n-1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/sanmu_1/article/details/81118638