如何正确使用Scanner,使用完后将其关闭以避免内存泄漏? [已关闭]

问题描述 投票:0回答:1

我正在尝试编写一个Java程序,要求用户输入一个正数,一直询问直到输入正数,然后在循环结束后打印一条消息。

当前代码是



import java.util.Scanner;

public class toturial {
  public static void main(String[] args) {
    int n;
    Scanner scan = new Scanner(System.in);
    do {
      System.out.print("Enter positive number:");
      n = input.nextInt();
      while(n>0);
      System.out.println("Program is terminated");
    }
  }

当我运行代码时,我收到错误输入。无法解决 如何解决此问题?是否还有其他错误可能导致执行出现问题?

我尝试用扫描替换输入,但我不确定其余的代码详细信息是否正确。

纠正这些错误并改进代码以使其按预期正常工作的最佳方法是什么?我如何组织代码以确保逻辑和正确的执行流程?

java do-while
1个回答
2
投票

我在提供的Java代码中发现了一些错误:

  1. 您使用名称
    scan
    声明了扫描仪变量。 因此,您应该使用
    scan.nextInt();
    来获取输入,而不是
    n = input.nextInt();
  2. Do while 语法似乎是错误的。 正确的语法:
    do {
        // code block to be executed
    } while (condition);
    
  3. 类名应该大写。 将
    tutorial
    重命名为
    Tutorial
    。 (可选但推荐)

更正代码供您参考:

public class Tutorial {
  public static void main(String[] args) {
    int n;
    Scanner scan = new Scanner(System.in);
    do {
      System.out.print("Enter positive number:");
      n = scan.nextInt();
    } while (n > 0);
    System.out.println("Program is terminated");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.