当前位置: 首页 > 知识库问答 >
问题:

如何根据用户选择打印星星的数量

阎卓
2023-03-14

我一直在尝试实践它的问题,并扩展它们一点 - 我卡住了。代码将根据需要给出尽可能多的星形结果,但我不知道如何让用户决定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);
            }
        }
}

共有2个答案

农弘毅
2023-03-14

您还应该在输入方法之前检查输入。这里有一种方法允许不正确的输入,并提示用户输入正确的值。这样,就不需要捕获任何异常。


        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);
            }
        }
汪阿苏
2023-03-14

按以下步骤操作:

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
********************************
 类似资料:
  • 问题内容: 是否可以在SQL中像下面这样创建一个星形的三角形。我知道可以用任何其他编程语言(如C,C ++,Java)轻松完成此操作,但想知道仅使用SQL还是PL是否真的可能/ SQL。我尝试在Oracle中使用双表对其进行处理,但无法通过它。 如果有人知道,有人可以请大家介绍一下。 问题答案: 最简单的方法就是这样。特别是如果要构建等边三角形而不是直角三角形,则可以变得更加复杂。

  • 问题内容: 我正在尝试打印星期几的名称,即星期一,星期二,星期三。我目前有一些代码可以做到这一点。我想知道是否有办法摆脱我的switch语句并使它变得更好。谢谢! 打印“星期一” 问题答案: 您使用了错误的日期格式。正确的格式是。除此之外,您可以使用Calendar属性weekdaySymbols返回本地化的工作日。 另一个选择是使用DateFormatter并将dateFormat设置为,您可以

  • 我想印这个图案: 我也找到了一些解决方案,但由于有这么多if-else块,它变得太乱了。我在找一些简单的解决办法。

  • 我很难弄清楚如何让我的程序根据用户输入的月、日、年来计算星期几。如下图所示。关于如何使它与JTextField和JComboBoxes连接,我没有任何线索。我真的很感谢任何人帮我做这件事。我知道我应该用: Calendar xmas=new GregorianCalendar(1998,Calendar.12,25);int dayOfWeek=xmas.get(calendar.day_of_w

  • 我想让程序根据我的扫描仪输入从ArrayList中进行选择。比如,我写早餐和甜食,它必须随机列出早餐甜食,并打印随机索引。 我还在学习Java,我只是在玩,并试图编码小项目来训练它。 下面是我已经写过的课程: 我是否可以将列表存储在变量中,可能是这样的: 我知道很难理解我,但英语不是我的主要语言,希望它能被理解。

  • 问题内容: 使用Python … 如何选择一年中的所有星期日(或与此相关的任何一天)? 这些日期代表2010年的星期日。我想这也可能适用于一周中的任何一天。 问题答案: 您可以使用该模块查找一年中的第一个星期日,然后继续添加7天,生成新的星期日: