输出中的其他星号

时间:2017-09-27 22:47:48

标签: java while-loop increment decrement

我知道增量运算符= ++ i,是i = i +1
的简写 而减量运算符的简写是--i(递减运算符是i = i -1)。

在这种情况下,我正在尝试为numStars打印出一定数量的星号,因此我选择了增量运算符(i = i + 1)。我使用numPrinted = numPrinted + 1来增加。以下是代码的简要介绍:

  numStars = 12;
  numPrinted = 1;

  while (numPrinted < numStars) {
     numStars = numStars * numPrinted;
     numPrinted = numPrinted + 1; //Went for increment since I'm assuming 
     additional asterisks will be shown

     System.out.print("*"); /* My output produces a total of 14 asterisks 
     whereas the expected output wants 12 asterisks */

  }

看到预期输出为12且numStars = 12,我是否需要输入numStars = numStars * numPrinted?因为我觉得这可能是我输出中有两个额外星号的原因,而不仅仅是12个星号。除非因为我决定增加numPrinted而有额外的两个星号?

提前感谢您提供的帮助和建议。

3 个答案:

答案 0 :(得分:0)

您的循环将继续,直到numPrinted大于或等于numStars。

如果您知道需要12个循环,则不应更改numStars的值,只能更改numPrinted的值。

此外,numPrinted不应该从1开始。这将导致11颗星。

构造循环的正确方法(如果你想使用while循环而不是for循环)如下:

  numStars = 12;
  numPrinted = 0;

  while (numPrinted < numStars) {
     numPrinted = numPrinted + 1; 
     System.out.print("*");
  }

答案 1 :(得分:-1)

你用什么语言编码?

您可以尝试:

  numStars = 12;
  numPrinted = 0;

  while (numPrinted < numStars) {
     numPrinted = numPrinted + 1; //increment by one

     System.out.print("*"); /* Print one asterisk */
  }

从0开始计数,否则将打印11个星号。

答案 2 :(得分:-1)

numStars = 12; numPrinted = 1;

  while (numPrinted <= numStars) {      
     numPrinted = numPrinted + 1;      
     cout << "*";
  }  

我正在编码c ++,值numPrinted = 1,而numStars的值是循环数。此循环12次并在行中打印12个星号。