我的代码问题需要帮助。我必须编写一个以表格格式显示星型的程序。
我并不是在寻找确切的代码,我想自己弄清楚,所以任何建议和提示都会有很大的帮助。
// Pattern A Loop
for(int PatternA = 0; PatternA <= 9; PatternA++) { // outerLoop Pattern A
for(int PatternAI = 0; PatternAI <=PatternA;PatternAI++) { // Inner Loop
System.out.print("+");
}
System.out.println();
}
// Pattern B Loop
for(int PatternB = 0; PatternB <=10; PatternB++) { // outer loop Pattern B
for(int PatternBI = 9; PatternBI >= PatternB; PatternBI--) { //Inner Loop
System.out.print("+");
}
System.out.println();
}
答案 0 :(得分:0)
既然你说你不想要一个完整的解决方案,这里有一些提示。
首先,由于您的表必须在同一行上打印来自PatternAI
和PatternBI
的材料,因此您应该将这些循环移动到一起。这将涉及使外部循环适用于两者。 (提示:您可以在for
循环中使用多个变量:for(int i = 0, j = 0; i < 10 && j < 2; i++, j++)
) 1
您还需要一些方法来分离模式。您可以使用空格,但它们的数量会有所不同(实际上与+
的方式相同,因此您可以使用它)。标签也有效,而且更简单。但是,当线条达到一定长度时,您必须在使用的标签数量之间进行更改。
这就是它的全部内容。如果我的提示有用,或者是否有更好的方式来表达它们,请告诉我。
1 这里实际上并不需要。 (见下面的最终代码)
这是完整的代码,如果你卡住=)
//Note, Pattern is used for both PatternA and PatternB in this outer loop for(int Pattern = 0; Pattern <= 9; Pattern++) { //Outer Loop for(int PatternAI = 0; PatternAI <=Pattern;PatternAI++){ //Inner Loop PatternA System.out.print("+"); } if(Pattern < 7) System.out.print("\t\t"); else System.out.print("\t"); for(int PatternBI = 9; PatternBI >= Pattern; PatternBI--){ //Inner Loop PatternB System.out.print("+"); } System.out.println(); }
答案 1 :(得分:0)
外环穿过图案的线条,内环穿过这些线条的元素。要将多行合二为一,您必须在一个外循环中组合多个内循环。
例如,采用以下模式:
一个外循环中的多个内循环:
int n = 5;
for (int i = -n; i <= n; i++) {
System.out.print(i == -n ? "a) " : " ");
for (int j = -n; j <= n; j++) {
if (i + j <= 0)
System.out.print("*");
else
System.out.print("-");
}
System.out.print(i == -n ? " b) " : " ");
for (int j = -n; j <= n; j++) {
if (i + j >= 0)
System.out.print("*");
else
System.out.print("-");
}
System.out.print(i == -n ? " c) " : " ");
for (int j = -n; j <= n; j++) {
if (i <= j)
System.out.print("*");
else
System.out.print("-");
}
System.out.print(i == -n ? " d) " : " ");
for (int j = -n; j <= n; j++) {
if (Math.abs(i) + Math.abs(j) <= n)
System.out.print("*");
else
System.out.print("-");
}
System.out.println();
}
输出:
a) *********** b) ----------* c) *********** d) -----*-----
**********- ---------** -********** ----***----
*********-- --------*** --********* ---*****---
********--- -------**** ---******** --*******--
*******---- ------***** ----******* -*********-
******----- -----****** -----****** ***********
*****------ ----******* ------***** -*********-
****------- ---******** -------**** --*******--
***-------- --********* --------*** ---*****---
**--------- -********** ---------** ----***----
*---------- *********** ----------* -----*-----