2014-10-19 100 views
-1

我需要创建一个打印金字塔结构的代码,给定最后打印的用户整数输入。 (我附上了一张最终产品的图片)。我是编程新手,一直在享受它,但我陷入了这个问题。如何在Java中每次循环增量时打印我的值(For循环)

我的代码当前可以产生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 

回答

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); 
      } 
     } 
+0

非常感谢!大的帮助;找到一个模式是我的第一个方法,但我无法扩展它。我觉得我习惯于将循环嵌套在对方内,但没有意识到将两个单独嵌套成一个嵌套将会成功。感谢您的大力帮助! – 2014-10-21 05:03:29

+0

我知道,它发生在我身上很多次......好吧,请记住:在编程之前解决问题。 – 2014-10-21 19:17:03

0

因为你的方法当前正在打印的数据来回回的特定数量适当地例如用于输入4正在打印

4444 
4444 
4444 
4444 

我建议乌尔提取用于显示的代码转换成一个单独的函数。并使用循环中的数字调用该函数。

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

这应该做的伎俩为你,因为你与编码出发,它也会给你使用的方法思路。

+0

这就像一个魅力,我肯定会以这种方式扩展我的代码,以应对未来的问题。伟大的方式来扩大一个概念。 – 2014-10-21 05:06:41

+0

好,我可以帮你。如果可能的话,请投票并标出我的答案。谢谢。 – SamDJava 2014-10-21 05:16:03