Java新手如何在后续代码中调用第8行存储的用户姓名输入值
问题解决说明
你无法引用第8行输入的根本原因是重复定义了同名变量Input,第二个存储性别的Input变量覆盖了第一个存储姓名的Input变量,只要给两个变量设置不同的名称区分即可,同时你提供的代码还有几处基础语法错误需要同步修正才能正常运行。
修正后可直接运行的完整代码
package Interview; import java.util.Scanner; public class Interview { public static void main(String[] args) { System.out.println("hello,please what is your name:"); // 修正Scanner实例化语法 Scanner in = new Scanner(System.in); // 存储姓名的变量单独命名,后续直接用这个变量名就能引用姓名 String userName = in.nextLine(); System.out.println("well then welcome to startechz " + userName); System.out.println("Are you a male or female:"); // 存储性别的变量单独命名,避免冲突 String gender = in.nextLine(); // 修正字符串比较逻辑:用equals方法比较内容,字符串字面量加双引号 if (gender.equals("male")) { // 直接引用之前定义的userName变量即可拿到第8行的输入 System.out.println("once again, welcome mr " + userName); } else { System.out.println("once again,welcome mrs " + userName); } // 用完关闭Scanner避免资源泄漏 in.close(); } }
关键修改点说明
- 变量命名拆分:将原本两个同名的
Input变量拆分为userName(存储用户姓名)和gender(存储用户性别),后续任意位置需要引用第8行的姓名输入,直接调用userName变量即可 - 语法错误修正:
- 原第7行Scanner实例化语法错误,正确写法为
Scanner in = new Scanner(System.in); - Java中字符串内容比较必须使用
equals()方法,不能用赋值符=,字符串字面量需要用双引号包裹 - 补充了Scanner关闭逻辑,避免资源泄漏
- 原第7行Scanner实例化语法错误,正确写法为
内容的提问来源于stack exchange,提问作者Edith Stark
相关产品推荐
相关产品推荐

