以下一段java代码,未报错,但是运行后无法输入数字1或者2,求高手帮我解答,谢谢谢谢谢谢谢谢谢谢谢谢

2025-04-27 05:10:52
推荐回答(5个)
回答1:

当然没输入啦,你的con=false;这是赋值,还有的是你的con=false中的con没初始值,肯定进不了while循环,还有的是你的choice最好写成我这样写,改成这样:
import java.util.Scanner;
public class J {
public static void main(String[]args){
Scanner input=new Scanner(System.in);
System.out.println("1,登录\n\n2,退出");
int choice = input.nextInt();
boolean con = true;
if(con==true){
con=false;
switch(choice){
case 1:System.out.println("下一步");
break;
case 2:System.out.println("谢谢使用");
break;
}

}
}
}

回答2:

你的boolean类型的变量con未初始化,而且在while判断中con==false你写成了con=false,要区分等于(==)和赋值(=)。

package com.lnc.scanner;

import java.util.Scanner;

public class ScannerTest01 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("1:登录\n2:退出");
boolean con = false;
while(con == false){
con = true;
int choice = input.nextInt();
switch(choice){
case 1:System.out.println("下一步");
break;
case 2:System.out.println("谢谢使用");
break;
}
}
}

}

对于局部变量的初始化Java se1.5版本(好像是)开始不显示错误,只显示警告,但是未初始化的局部变量会出现运行时异常。在你的程序中con是一个局部变量,因此错了。

回答3:

你的boolean con 没有付初始值;
还有你的while语句(con =false)中是比较的,不应该用等号(=)应该用双等号(==)
等号是赋值的意思,双等号才是比较的意思!懂?
还有一种比较方法:
while(con.equel(false));
希望能帮到你!

回答4:

while(con=false)这里是==不是=啊,con=false只是赋值语句,并不是条件判断语句。

回答5:

boolean con;改为boolean con=false;