java中缩放图形时的For循环输出
缩放时,我无法使for循环使用我的“figure”运行正确的次数。 这里的直线常数是缩放“数字” 我面临的问题就在这里,我认为:java中缩放图形时的For循环输出,java,loops,for-loop,Java,Loops,For Loop,缩放时,我无法使for循环使用我的“figure”运行正确的次数。 这里的直线常数是缩放“数字” 我面临的问题就在这里,我认为: for(int k = 0; k < LINES; k++){ System.out.print("*******"); } for(int k=0;k
for(int k = 0; k < LINES; k++){
System.out.print("*******");
}
for(int k=0;k
它应该在底部画一条线
这是我生成某种楼梯图形的全部代码
public class PP5 {
public static int j;
public static final int LINES = 5;
public static void main(String[] args) {
for(j = 0 ; j < LINES; j++){
fSpaces();
System.out.print(" o *******");
bSpaces();
System.out.println("*");
fSpaces();
System.out.print(" /|\\ *");
bbSpaces();
System.out.println("*");
fSpaces();
System.out.print(" / \\ *");
bbSpaces();
System.out.println("*");
}
for(int k = 0; k < LINES; k++){
System.out.print("*******");
}
}
public static void fSpaces(){
for(int i = (LINES-1); i > j; i--){
System.out.print(" ");
}
}
public static void bSpaces(){
for(int i = 0; i < j; i++){
System.out.print(" ");
}
}
public static void bbSpaces(){
for(int i = 0; i < j+1; i++){
System.out.print(" ");
}
}
}
公共类PP5{
公共静态int j;
公共静态最终整数行=5;
公共静态void main(字符串[]args){
对于(j=0;jj;i--){
系统输出打印(“”);
}
}
公共静态void bSpaces(){
对于(int i=0;i
高度赞赏任何优化。
谢谢您需要38颗星,您正在打印35颗星
38=(6(Every increment) * 6 (No of times) )+2 (first increment is of 8[6+2])
No of times =6 Because indexing starts from 0 (0,1,2,3,4,5) so in actual counting is 6
所以使用
for(int k = 0; k <(LINES+1)*6; k++){
System.out.print("*");
}
System.out.print("**");// last star
以获得与此类似的效果
o ********
/|\ * |*
/ \ * |*
o ******* |*
/|\ * | |*
/ \ * | |*
o ******* | |*
/|\ * | | |*
/ \ * | | |*
o ******* | | |*
/|\ * | | | |*
/ \ * | | | |*
o ******* | | | |*
/|\ * | | | | |*
/ \ * | | | | |*
**************************************
|_____|_____|_____|_____|_____|_____|_
您需要注意,这部分的每一部分
有六个字符,因此您需要使用六个*
并将它们打印行+1次,因为有行+1次|uuuuuuuuuu
部分
这将产生
************************************|_
从
因此,您需要手动添加最后两个*
,因此将最后一个循环更改为
for (int k = 0; k <= LINES; k++) {
System.out.print("******");//reduce star numbers by one
}
System.out.print("**");//and add this line
for(intk=0;k在您的实现中,只需替换
for(int k = 0; k < LINES; k++){
System.out.print("*******");
}
for(int k=0;k
与
for(int k = 0; k < STEPS+1; k++){
System.out.print("******");
}
System.out.print("**");
for(int k=0;k
其动机是每一步添加7*和一个重叠。这意味着您需要添加6*而不是7。您需要再添加1倍以匹配顶部部分(但缺少2*:1,因为顶部行由7*和一个列组成).问题到底是什么。您可以通过发布预期输出和实际输出来说明您的循环打印“******”行
次。因此星号总数将是7乘以行
。正如您所看到的,它在底线上产生的*不够。如果我通过使for循环产生足够的*数:kfor(int k = 0; k < LINES; k++){
System.out.print("*******");
}
for(int k = 0; k < STEPS+1; k++){
System.out.print("******");
}
System.out.print("**");