每次循环在Java(For Loop)中递增时,如何获取我的值?

时间:2014-10-19 20:44:41

标签: java

我需要创建一个打印金字塔结构的代码,给定最后打印的用户整数输入。 (我附上了最终产品的图片)。我是编程新手,一直很喜欢它,但我遇到了这个问题。

我的代码目前可以生成4次用户输入。所以我觉得我很接近,只需稍加调整即可完成工作

我需要我的代码在循环增加的每一次打印输出而不是仅显示用户输入一定次数。我将整数转换为字符串,以便我可以显示值x次,但我觉得这就是让我失望的原因。如果我能以某种方式让字符串在每个增量处显示值,那么我将是金色的。请帮忙!以下是我的代码

import java.util.Scanner; //import scanner

public class NumberStack { // class

static Scanner myScanner; //declare scanner

public static void main(String[] args){ //add main method
    myScanner= new Scanner (System.in); //scanner input declaration
    int input= 0;

    while (true) {
        System.out.print("Enter an integer between 0 and 9 inclusive: ");
        if (!myScanner.hasNextInt()) {
            System.out.println("You have not entered an integer");
        }
        input= myScanner.nextInt();
        if ( (input>=0) && (input<=9) ) {

            String smln= Integer.toString(input);
            String out="";

                for (int p=0; p<input; p++) {    
                    for (int j=0; j<input; j++) {    
                        for (int i=0; i<((input*2)-1);i++) {

                            out += smln;

                        }
                        System.out.println(""+out); 
                        out="";
                        smln= Integer.toString(input);
                    }
                }


        } //end of if statement
        else {
            System.out.println("You have not entered an integer within range");
        }

    } //end of while loop


} //end of main method
} //end of class

2 个答案:

答案 0 :(得分:0)

当你遇到像这样的问题时,你应该试着找一个模式......看看这个

        int input = 4;

        for(int i = 1; i <= input; i++)
        {
            int times = i;
            int length = 2 * i - 1;
            String str = "";
            for(int j = 0; j < length; j++)
            {
                str += i;
            }
            for(int k = 0; k < times; k++)
            {
                System.out.println(str);
            }
        }

答案 1 :(得分:0)

由于您的方法当前正在打印特定数字的数据,例如输入4正在打印

4444
4444
4444
4444

我建议将提取的ur代码显示为单独的函数。并使用循环中的数字调用该函数。

for(int i=1; i<=num;i++)
  function_f1(i);

这应该可以帮到你,因为你开始编写代码,它也会为你提供使用方法的想法。