是的,这是作业,但我不知道如何只使用for循环。
我能够使用for循环和if else语句重现结构,但我的导师告诉我不会飞。
public class Problem3 {
public static void main(String[] args) {
/** Code under here */
int box = 22;
for(int i=22; i>0; i--)
{
if(i==18)
System.out.println("\\\\"+"!!!!!!!!!!!!!!!!!!"+"//");
else if(i == 14)
System.out.println("\\\\\\\\"+"!!!!!!!!!!!!!!"+"////");
else if (i== 10)
System.out.println("\\\\\\\\\\\\"+"!!!!!!!!!!"+"//////");
else if (i == 6)
System.out.println("\\\\\\\\\\\\\\\\"+"!!!!!!"+"////////");
else if (i == 2)
System.out.println("\\\\\\\\\\\\\\\\\\\\"+"!!"+"//////////");
else if(i == 22)
System.out.println("!!!!!!!!!!!!!!!!!!!!!!");
}
System.out.println("");
}
}
答案 0 :(得分:4)
一些提示:
\
的数量可以从行号(从0开始)计算!
,也可以计算\
的数量。根据这些观察结果,您应该能够生成只有2级嵌套循环的代码(我没有说2个循环,只有2个级别)。
答案 1 :(得分:1)
一行中有22个字符,行n
包含2*(n-1)
\
个字符,2*(n-1)
/
字符和22 - 4*(n-1)
{{ 1}}字符。
您应首先构建要打印的字符串(对于每一行)。这将涉及重复字符(this question提供了一些想法)
答案 2 :(得分:0)
请注意,在每行i中(如果您从0开始编号),开头有2 * i \
个字符,末尾有2 * i'/'个字符,行的其余部分已填充用'!'字符。
所以你的代码看起来像是:
for ( int row = 0; row < 6; row++ ) {
int slashes = 2 * row;
for ( int slash = 0; slash < slashes; slash++ ) {
// Print a `\`
}
// Work out how many '!'s you need and print them.
// ... you try this bit
for ( int slash = 0; slash < slashes; slash++ ) {
// Print a `/`
}
}
答案 3 :(得分:0)
请注意,每次在每一侧都有两个斜杠/反斜杠(因此中间有四个!
s)。您可以创建一个for
循环来增加斜杠数,并计算要打印的!
个数,以填充22
的长度,然后打印出所有必需的字符当前行。
答案 4 :(得分:0)
这够好吗?我也在学习java。反馈意见。
public class Problem3 {
public static void main(String[] args) {
/** Code under here */
int box = 22;
int line = 0;
String char_1 = "w";
String char_2 = "q";
String char_3 = "e";
String string = "";
for (int i = 0; i < 6; i++) {
for (int j = 0; j < line * 2; j++) {
System.out.print(char_1);
}
for (int k = box; k > 0; k --) {
System.out.print(char_2);
}
for (int l = 0; l < line * 2; l++){
System.out.print(char_3);
}
System.out.println(string);
line++;
box = box - 4;
}
}
}
答案 5 :(得分:-1)
number_of_lines
是预期输出中的行数(在本例中为6)。 number_of_characters
是每行应具有的字符数(在这种情况下为22)。
我们知道有一种模式。左侧有\
,中间有!
,右侧有/
。这意味着我们需要一个外循环来遍历这些行,并且三个内循环用于每个部分。
我们如何知道我们需要多少个角色?
第一行有0 \
,22 !
和0 /
第二行有2 \
,18 !
和2 /
第三行有4个\
,14个!
和4个/
第四行有6 \
,10 !
和6 /
第五行有6 \
,10 !
和6 /
第六行有8 \
,6 !
和8 /
第七行有10 \
,2 !
和10 /
有一种模式。每行的\
和/
计数递增2,!
计数递减4.
\
的数量等于当前行号的两倍(假设第一行号为0)。与/
相同。 !
的数量是每行预期的字符总数减去当前行号的四倍(假设第一行号为0)。
public void printCoolStuff(int number_of_lines, int number_of_characters){
for(int i = 0; i < number_of_lines; i ++){
String left= "";
for(int j = 0; j < (2*i); j++){
left= left+ "\"
}
String middle = "";
for(int j = 0; j < (number_of_characters - 4*i); j++){
middle = middle + "!"
}
String right= "";
for(int j = 0; j < (2*i); j++){
right = right + "/"
}
System.out.println(left+middle+right);
}
}