英文:
Print the integers from 1 to a number given by user
问题
import java.util.Scanner;
public class FromWhereToWhere {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Write your program here
System.out.println("Where to?");
int userInput = Integer.valueOf(scanner.nextLine());
int start = 1;
while (start <= userInput) {
System.out.println(start);
start++;
}
}
}
英文:
I'm doing the Java MOOC by Helsinki University. Stuck on the following problem:
Write a program which prints the integers from 1 to a number given by the user.
Sample output
Where to? 3
1
2
3
The code below outputs the expected results but is not accepted as valid. Any suggestions or pointers are welcome, thank you!
import java.util.Scanner;
public class FromWhereToWhere {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Write your program here
System.out.println("Where to?");
int userInput = Integer.valueOf(scanner.nextLine());
int start = 1;
while (start <= userInput) {
System.out.println(start);
start++;
}
}
}
答案1
得分: 1
最有可能的是测试您的程序的系统正在将值插入标准输入(System.in
),并假设您将使用.nextInt()
进行读取。
如果不是这样,仔细检查程序说明;如果我输入-1会发生什么?0呢?1985985410395831490583440958230598呢?FOOBAR呢?
如果没有说明,那么验证器可能不会向您提供这些输入(如果确实提供了,请向MOOC提供者报告错误,如果是这种情况,课程本身需要修正),但如果提供了这些输入,您可能需要编写相应的规则。
这应该不是问题,但为了完全镜像所需的结果,它是System.out.print("Where to? ");
- 注意,没有ln
,以及尾随的空格。
英文:
Most likely the system that tests your program is stuffing values into standard input (System.in
) with spaces, and assumes that you will read with .nextInt()
.
If that's not it, double check the program description; what is supposed to happen if I enter -1? 0? 1985985410395831490583440958230598? FOOBAR?
If it doesn't say, then presumably the verifier won't throw those inputs at you (if it does, file a bug with the MOOC provider, the course itself needs fixing if that is the case), but if it does, you're going to have to code those rules in, probably.
This shouldn't be it, but to exactly mirror the desired result, it's System.out.print("Where to? ");
- note, no ln
, and a trailing space.
答案2
得分: 1
你没有检查用户输入是否有效,我建议从以下开始:
- 检查userInput是否为有效数字(包括数字字符)。
- 检查userInput是否大于或等于1。
英文:
You did not check if the user input is valid, I would suggest starting off with the following:
- check if userInput is a valid number (includes numeric characters).
- check if userInput is larger or equal to 1.
答案3
得分: 0
你的答案是可以的,但如果你的老师希望适用于初学者水平,那么可以进行优化,因为:
- 你可以直接从扫描器中获取一个整数,无需使用包装类Integer。
- 你可以使用另一个循环...一个for循环
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 在这里编写你的程序
System.out.println("要去哪里?");
int userInput = scanner.nextInt();
System.out.println("好的!");
for (int i = 1; i <= userInput; i++) {
System.out.println(i);
}
}
英文:
your answer is ok but can be optimized to the beginners levels if that is what your teacher is expecting because:
- you can get an int directly from scanner, no need to use the wrapper class Integer.
- you can use another loop ... a for loop
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Write your program here
System.out.println("Where to?");
int userInput = scanner.nextInt();
System.out.println("ok!");
for (int i = 1; i <= userInput; i++)
{
System.out.println(i);
}
}
答案4
得分: 0
只需尝试删除
System.out.println("Where to?");
改为
System.out.print("Where to?");
英文:
Just try by Removing
System.out.println("Where to?");
with
System.out.print("Where to?");
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论