使用循环的模式

时间:2014-11-08 01:54:35

标签: java

我必须创建一个循环来读取用户的输入(假设他的输入是5)所以输出应该如下: -

*
**
***
****
*****
****
***
**
*

int x;
//input size of triangle from 1-20
Scanner scanner = new Scanner (System.in);
System.out.println("Enter size of triangle from 1 to 20: ");
x = scanner.nextInt ();

for( int i = 0; i <= x; i++){
    for(int j=0; j < i; j++){
        System.out.print( " *");
    }
        System.out.println(" ");

我只是不知道如何通过减少模式来完成它,所以我可以形成一个完整的三角形。

3 个答案:

答案 0 :(得分:1)

示例使用三元运算符.increase j如果x grater比i减小

int x = 5, j=0;

for (int i = 0; i <= x*2; i++) {
    j= (x>i)? ++j:--j;   // u can use if else also
    for (int y = 0; y < j; y++) {
        System.out.print(" *");
    }
    System.out.println("");
}

输出&GT;&GT;

 *
 * *
 * * *
 * * * *
 * * * * *
 * * * * * *
 * * * * *
 * * * *
 * * *
 * *
 *

答案 1 :(得分:0)

以下代码打印三角形,假设用户输入10

for (int i = 0; i < 10; i++){
    for (int j = 0;j < i;j++ )
    System.out.print('x');
    System.out.println();
}
for (int i = 10; i > 0; i--){
    for (int j = 0; j < i;j++)
    System.out.print('x');
    System.out.println();
}

在你的代码中,你排除了i递减的第二个for循环。

答案 2 :(得分:0)

import java.util.Scanner;

public class Triangle {
    public static void printLine(int n) {
        for(int i = 0; i < n; i++) System.out.print("*");
        System.out.print("\n");
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner (System.in);
        System.out.println("Enter size of triangle");
        int x = scanner.nextInt ();

        for(int i = 0; i < x; i++) {
            printLine(i);
        }

        for(int i = x; i > 0; i--) {
            printLine(i);
        }
    }   
}

输出:

Enter size of triangle
5

*
**
***
****
*****
****
***
**
*