大家好,我只是为自己做一些阅读,学习java并遇到了这个问题,目前卡住了。
我需要根据用户提供的输入打印出一系列数字。 例如,如果input = 5,则输出应如下
@ 1 @ 22 @ 333 @ 4444 @ 55555
import java.util.*;
public class ex5{
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
System.out.println("Please type a #: ");
int input = kb.nextInt();
for(int i=0;i<input;i++){
if(input==1){
System.out.print("@1");
}
if(input==2){
System.out.print("@1@22");
}
}
}
}
这似乎不起作用,因为这是我得到的输出
请输入#: 2 @ 1 @ 22 @ 1 @ 22
我现在还不确定要在for循环中放什么,我不认为我在这里使用for循环要么......
任何帮助人员?
答案 0 :(得分:2)
你需要一个嵌套的for循环来解决这个问题。
答案 1 :(得分:2)
是的,这不是你想要的方式。你将要在for循环中构建字符串。
以新字符串开头
String s = "";
循环时,添加到该字符串。
for(int i=1;i<=input;i++){
s += @;
for(int j=0; j<i; j++) {
s+=i;
}
}
答案 2 :(得分:2)
for (int i=1; i<=5; i++){
System.out.print("@");
for (int j=1; j<=i; j++) System.out.print(i);
}
出
@1@22@333@4444@55555
答案 3 :(得分:1)
您需要使用嵌套的for
循环。
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.println("Please type a #: ");
int input = kb.nextInt();
for (int i = 1; i <= input; i++) {
System.out.print("@");
for (int k = 0; k < i; k++) {
System.out.print(i);
}
}
}
答案 4 :(得分:1)
这是因为您正在检查if语句中的数字1和2。硬编码只检查这两个数字,一旦超过你有一个if语句
的值就行不通你想要做的是输出你的迭代器的值(在你的情况下,我)i次(提示,你可以在大循环中使用另一个循环)然后在字符串的末尾加上@符号
我会尽量不给你任何代码,这样你就可以自己学习,但可以随意提出更多问题。
答案 5 :(得分:0)
您正在尝试打印给定的号码 - 给定次数? 然后你需要两个循环 - 外部循环用于迭代数字和内部 - 用于迭代 - 给定数字。
这将是这样的:
for(int i = 0; i < input; ++i) {
System.out.print("@");
for(int j = 0; j < i; ++j) {
System.out.print(i);
}
}