使用扫描仪获取输入是字符串还是整数

问题描述

Scanner sc = new Scanner(system.in);
System.out.print("Enter number: ");

while (true) {
    if (sc.hasNextInt()) {
        int i = sc.nextInt();
    } else {
        String i = sc.next();
    }  
}

System.out.println(" "+i);

为什么我不能在 String i 循环之外使用 int iwhile

解决方法

变量 i 不能在 while 循环外打印,因为在循环内创建的任何变量都是 LOCAL TO THE LOOP。这意味着一旦退出循环,就不能再访问该变量!这包括在循环签名中创建的任何变量

You can refer more from here

,

您在 while 循环内声明变量,因此该变量的范围仅限于代码的那部分,要使其在您的 while 循环之后可用,您必须在 while 循环之前声明它,然后将其填充到 while 循环中

,

请描述您想用此代码做什么。 如果你只是想从控制台获取输入并打印出来,你可以这样做:

Scanner sc = new Scanner(System.in);
    System.out.print("Enter number: ");
    System.out.println(sc.nextLine());

为什么要将其放入循环中?

如果您想学习,请考虑开始免费课程或阅读一本书。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...