基本上我试图让程序接受1到10之间的整数以及字母字符。然后,它根据此值输出适当的模式作为最大宽度
例如,用户输入5的整数和程序打印出来的字母X:
X
XX
XXX
XXXX
XXXXX
我似乎无法打印出任何东西,下面是我到目前为止所得到的...任何提示都非常感谢!
import java.util.*;
public class pattern {
public static void main(String[] args) {
int New1 = 1, Linecounter = 1;
Scanner sc = new Scanner(System.in);
int Number = sc.nextInt();
if (Number >= 1 && Number <= 10) {
Number = New1;
}
else{
System.out.println("Error: Enter a number between 1 and 10");
}
Scanner keyboard = new Scanner(System.in);
char letter = keyboard.next().charAt(0);
for (New1 = 1; New1 <= 10; New1++) {
for (letter = (char) Linecounter; letter <= 10; letter++) {
System.out.print("" +letter+ "");
}
System.out.println();
}}}
答案 0 :(得分:0)
是这样的,你正在寻找?
int x = 5;
char letter = 'x';
for (int i = 0; i <= x; i++)
{
for (int j = 0; j < i; j++)
{
System.out.print(letter);
}
System.out.println();
}
以上输出
x
xx
xxx
xxxx
xxxxx
答案 1 :(得分:0)
首先关闭:
if (Number >= 1 && Number <= 10) {
Number = New1;
}
设置Number = 1.执行此代码后,Number和New1都等于1.您需要将Number设置为输入的内容。现在循环需要工作。你应该有这样的东西:
for (int i = 1; i <= Number; i++) { //1 through Number
for (int j = 1; j <= i; j++) {
System.out.print(letter); //Print letter i times
}
System.out.print("\n"); //New line
}
答案 2 :(得分:0)
这看起来像是家庭作业,所以我只给你带来伪代码。我的想法是做这样的事情:
for i in 1..x do
for j in 1..i do
print ('*')
end
println (''
end
(事实上,如果您更改println
的{{1}},这将成为有效的Ruby脚本。)
无论如何,这里的关键是:您需要与用户输入的行一样多的星号。只要在内循环中打印星号而不打印换行符,并在外循环中调用puts
,就可以了。
在外循环中迭代到想要的值也很重要,但只直到内循环中的println
变量。
答案 3 :(得分:0)
试试这个:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Integer: ");
int userInt = scan.nextInt();
System.out.print("Letter: ");
String userLetter = scan.next();
String letter = "";
for (int i = 0; i <= userInt; i++) {
System.out.println(letter);
letter += userLetter;
}
}
这并不会将输入限制在1-10之间,您可以为此添加一点if
语句。