使用循环计数器使用2个变量打印出模式

时间:2014-12-12 00:15:31

标签: java loops counter

基本上我试图让程序接受1到10之间的整数以及字母字符。然后,它根据此值输出适当的模式作为最大宽度

例如,用户输入5的整数和程序打印出来的字母X:

X

XX

XXX

XXXX

XXXXX

我似乎无法打印出任何东西,下面是我到目前为止所得到的...任何提示都非常感谢!

import java.util.*;

public class pattern {

    public static void main(String[] args) {
        int New1 = 1, Linecounter = 1;



        Scanner sc = new Scanner(System.in);
        int Number = sc.nextInt();

        if (Number >= 1 &&  Number <= 10) {
            Number = New1;
        }
            else{
            System.out.println("Error: Enter a number between 1 and 10");
        }

        Scanner keyboard = new Scanner(System.in);
        char letter = keyboard.next().charAt(0);

        for (New1 = 1; New1 <= 10; New1++) {
            for (letter = (char) Linecounter; letter <= 10; letter++) {
                System.out.print("" +letter+ ""); 
            }
            System.out.println();

        }}}

4 个答案:

答案 0 :(得分:0)

是这样的,你正在寻找?

int x = 5;
char letter = 'x';

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

    System.out.println();
}

以上输出

x
xx
xxx
xxxx
xxxxx

答案 1 :(得分:0)

首先关闭:

if (Number >= 1 &&  Number <= 10) {
            Number = New1;
        }

设置Number = 1.执行此代码后,Number和New1都等于1.您需要将Number设置为输入的内容。现在循环需要工作。你应该有这样的东西:

for (int i = 1; i <= Number; i++) { //1 through Number
   for (int j = 1; j <= i; j++) {
      System.out.print(letter); //Print letter i times
   }
   System.out.print("\n"); //New line
}

答案 2 :(得分:0)

这看起来像是家庭作业,所以我只给你带来伪代码。我的想法是做这样的事情:

for i in 1..x do
    for j in 1..i do
        print ('*')
    end
    println (''
end

(事实上,如果您更改println的{​​{1}},这将成为有效的Ruby脚本。)

无论如何,这里的关键是:您需要与用户输入的行一样多的星号。只要在内循环中打印星号而不打印换行符,并在外循环中调用puts,就可以了。 在外循环中迭代到想要的值也很重要,但直到内循环中的println变量。

答案 3 :(得分:0)

试试这个:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.print("Integer: ");
    int userInt = scan.nextInt();
    System.out.print("Letter: ");
    String userLetter = scan.next();
    String letter = "";

    for (int i = 0; i <= userInt; i++) {
        System.out.println(letter);
        letter += userLetter;
    }
}

这并不会将输入限制在1-10之间,您可以为此添加一点if语句。