有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当用户输入单词“exit”时,如何使用Java中的扫描仪退出dowhile循环?

我正在写一个包含do while循环的程序。我希望用户键入“exit”以退出我的循环,但我的while语句不起作用并生成错误

错误出现在}while(!integer1.equals("exit"));

import java.util.*;
public class Integer {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        do {
            System.out.println("Enter integers or exit");
            int integer1 = sc.nextInt();
            int integer2 = sc.nextInt();
            if((integer1%integer2)==0)
                System.out.println(integer1+"divisible"+integer2);
            else
                System.out.println("Not divisible");

        }while(!integer1.equals("exit"));

    }

}

共 (1) 个答案

  1. # 1 楼答案

    变量integer1do { ... }块之外是不可访问的,因此不能在while语句的条件内使用它。即使integer1是可访问的,也不能使用equals方法,因为integer1int而primitve类型没有equals方法。。。即使他们有,一个int永远不会等于一个String,所以你需要改变程序的逻辑

    例如,可以使用以下代码:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
    
        String input = "";
    
        while (!(input = sc.next()).equals("exit")) {
            int i1 = Integer.parseInt(input);
            int i2 = sc.nextInt();
    
            if ((i1 % i2) == 0)
                System.out.println(i1 + "divisible" + i2);
            else
                System.out.println("Not divisible");
        }
    }