因此,对于我的计算机科学课程中的作业,我们必须根据喜好使用或同时使用循环。现在,赋值是使用所述循环和给定的输入来绘制由' $'组成的美丽的ASCII钻石。和' - '。比如,5的输入看起来像:
____$
___$-$
__$-$-$
_$-$-$-$
$-$-$-$-$
_$-$-$-$
__$-$-$
___$-$
____$
下划线表示空格。现在,我随时尝试使用
public static void main(String[] args) {
String input=JOptionPane.showInputDialog(null, "Input a number between three and ten here: ");
double length=Double.parseDouble(input);
int i=0; int j=0;
for(i=1; i<length; i++)
{
System.out.print(" ");
for(j=1; j<=i; j++)
{
if(j<i){System.out.print("-$");
}
else if(j==i){System.out.println("");}
}
}
我出来的东西就像输入= 7:
-$
-$-$
-$-$-$
-$-$-$-$
-$-$-$-$-$
是的,对于任何输入,中心的两个太少都是正确的。有什么帮助吗?
答案 0 :(得分:1)
由于这是你的作业,我只是指出你正确的答案,让你弄清楚剩下的。让我们尝试格式化您的代码,以便您可以看到正在发生的事情:
public static void main(String[] args) {
String input=JOptionPane.showInputDialog(null, "Input a number between three and ten here: ");
double length=Double.parseDouble(input);
int i=0; int j=0;
for(i=1; i<length; i++){
System.out.print(" ");
for(j=1; j<=i; j++){
if(j<i){
System.out.print("-$");
}
else if(j==i){System.out.println("");
}
}
}
现在,你有一个i的外循环,范围从1..length-1,并且对于每个你要打印一个空格,然后你将从1到1计数并打印“ - $“那么多次。然后,你打算打印换行符并重复外循环,递增i
所以,第一次通过外循环,你打印一个空格,然后是一个“ - $”,然后是换行符。然后第二次通过外循环,打印一个空格,然后打印“ - $”两次,然后换行。等等,直到我=长度,然后你停下来。
您希望在打印美元符号之前再打印几个空格 - 这里的循环可能很有用。
答案 1 :(得分:-1)
尝试查看此代码,看看它是如何工作的......它可能对您的作业很有用
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("input a number");
int number = input.nextInt();
input.close();
boolean add = true;
int counter = 0;
do {
if (add) {
counter++;
print(' ', number - counter);
print('$', counter);
if (counter == number)
add = false;
System.out.println();
} else {
counter--;
if (counter == 0)
break;
print(' ', number - counter);
print('$', counter);
System.out.println();
}
} while (true);
}
private static void print(char c, int times) {
if (c == '$')
times = (times * 2) - 1;
for (int i = 0; i < times; i++)
System.out.print(c);
}
如果您编辑打印方法,您将获得所需的结果
private static void print(char c, int times) {
if (c == '$')
times = (times * 2) - 1;
for (int i = 0; i < times; i++)
if (i % 2 == 1 && c == '$')
System.out.print('-');
else
System.out.print(c);
}