如何根据用户选择打印星星数量
how to print number of stars depending on user choose
我一直在尝试 practiceIt 问题并稍微扩展它们 - 但我被卡住了。
该代码将根据需要给出尽可能多的星星结果,但我不知道如何让用户决定 n 的值。
我尝试将这些代码行添加到两种方法 (main/starString) 中:
"扫描仪输入 = new.Scanner(System.in);
int n = input.next();" [也 input.nextInt]
但代码将注意允许来自控制台的任何输入。更不用说我不知道我应该在哪里添加第二个 println 命令来实际打印这段代码的结果......
请帮助我
import java.util.*;
public class printStars {
public static void main(String[]args) {
System.out.println("choose number and I wil show you 2^number stars");
}
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
}
按如下操作:
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.print("Choose number and I wil show you 2^number stars: ");
System.out.println(starString(in.nextInt()));
}
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
}
样本运行:
Choose number and I wil show you 2^number stars: 5
********************************
您还应该在进入方法之前检查输入。这是一种允许不正确输入并重新提示用户输入正确值的方法。这样就不需要捕获异常了。
Scanner in = new Scanner(System.in);
String prompt = "Choose number (or a char to end) \nand I will show you 2^number stars: ";
System.out.print(prompt);
while (in.hasNextInt()) {
int n = in.nextInt();
if (n > 0) {
System.out.println(starString(n));
} else {
System.out.print("Input must be greater than 0, try again: ");
continue;
}
System.out.print(prompt);
}
System.out.println("Bye!");
public static String starString(int n) {
if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
我一直在尝试 practiceIt 问题并稍微扩展它们 - 但我被卡住了。 该代码将根据需要给出尽可能多的星星结果,但我不知道如何让用户决定 n 的值。
我尝试将这些代码行添加到两种方法 (main/starString) 中: "扫描仪输入 = new.Scanner(System.in); int n = input.next();" [也 input.nextInt]
但代码将注意允许来自控制台的任何输入。更不用说我不知道我应该在哪里添加第二个 println 命令来实际打印这段代码的结果...... 请帮助我
import java.util.*;
public class printStars {
public static void main(String[]args) {
System.out.println("choose number and I wil show you 2^number stars");
}
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
}
按如下操作:
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
System.out.print("Choose number and I wil show you 2^number stars: ");
System.out.println(starString(in.nextInt()));
}
public static String starString(int n) {
if (n < 0) {
throw new IllegalArgumentException();
} else if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}
}
样本运行:
Choose number and I wil show you 2^number stars: 5
********************************
您还应该在进入方法之前检查输入。这是一种允许不正确输入并重新提示用户输入正确值的方法。这样就不需要捕获异常了。
Scanner in = new Scanner(System.in);
String prompt = "Choose number (or a char to end) \nand I will show you 2^number stars: ";
System.out.print(prompt);
while (in.hasNextInt()) {
int n = in.nextInt();
if (n > 0) {
System.out.println(starString(n));
} else {
System.out.print("Input must be greater than 0, try again: ");
continue;
}
System.out.print(prompt);
}
System.out.println("Bye!");
public static String starString(int n) {
if (n == 0) {
return "*";
} else {
return starString(n - 1) + starString(n - 1);
}
}