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

而循环只在主体中运行一次

罗宪
2023-03-14

代码:

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        ArrayList<Book> bookList = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        boolean flag = true;

        while (flag) {

            System.out.println("Title:");
            String title = scanner.nextLine();

            if (!title.isEmpty()) {
                System.out.println("Pages:");
                int pages = scanner.nextInt();
                System.out.println("Publication year:");
                int pub = scanner.nextInt();
                Book info = new Book(title, pages, pub);
                bookList.add(info);

            } else if (title.isEmpty()) {
                flag = false;

            }

        }
        System.out.println("What informaiton will be printed?");
        String choice = scanner.nextLine();
        switch (choice) {

            case "everything":
                if (choice.equals("everything")) {
                    for (Book info : bookList) {
                        System.out.println(info.getTitle() + ", " + info.getPages() + " pages, " + info.getYear());
                    }
                }

            case "name": {
                if (choice.equals("name")) {
                    for (Book infor : bookList) {
                        System.out.println(infor.getTitle());
                    }

                }
            }

        }

    }

共有1个答案

申屠乐池
2023-03-14

我相信你要找的是Java中对扫描器及其方法的解释。对stackoverflow进行了一些搜索,帮助我找到了这一点。

此外,我发现新开发人员有时会忽略最明显的信息领域,即官方文档,这些文档对初学者总是有帮助的,因为一旦你能阅读它们,它们会让你的生活变得更容易。

为了补充我从提到的链接中借用的答案

nextLine()读取当前行的剩余部分,即使它为空。

nextInt()读取一个整数,但不读取转义序列“\n”。

next()读取当前行,但不读取“\n”。

 类似资料:
  • 我试图实现每秒循环一次的ScheduledExecutorService线程,但现在它只循环一次。 我的问题是如何设置它,使它周期性地循环,而不是一次迭代? 另外,如何将连接池传递给线程,以便每次迭代都可以查询数据库?任何帮助都非常感谢。

  • 我需要12次外循环,每个外循环1次内循环 例如: 等 但现在我的内循环在第一次迭代的外循环上运行。 请帮助我如何使用for循环执行此操作。

  • 我对python中双for循环的使用感到困惑,这是我的代码: 输出如下: 它只对外循环的第一个值执行内循环,为什么会发生这种情况?我怎样才能让它在第一个和第二个变量的所有组合上循环?

  • 问题内容: 和别的: 两者都不起作用(强制关闭应用程序)。我可以尝试其他哪些选择? 问题答案: 您的代码失败,因为您在后台线程中执行睡眠,但是显示数据必须在UI线程中执行。 您必须从runOnUiThread(Runnable)运行displayData或定义处理程序并将消息发送给它。 例如:

  • 问题内容: 在非常老的项目中修复错误期间,我遇到了奇怪的方法,它看起来像这样: 它会导致暂停时间,还是会因JVM优化而被忽略? 问题答案: JIT运行几次后将对其进行优化。JVM在第一次运行时,需要检查是否正在递增的值未在任何地方使用。

  • 我创建了这个函数来计算我要测量的距离: 由于我不明白的原因,距离的值只返回一次。因此,如果我在forEach函数中抛出2个位置,并且在循环中使用console.log,我会看到所有的计算都是正确的。但如果我返回距离的值,则只返回一个值。 如何正确返回值? 我使用VueJS,其中'Distance toResponder'是一个计算属性来填充表: 因此函数应该返回每个响应者的距离。那么我需要如何调整