为了账号安全,请及时绑定邮箱和手机立即绑定

为什么编译器给我一个无法访问的语句?

为什么编译器给我一个无法访问的语句?

GCT1015 2022-09-01 16:33:13
我的目标是制作一个字符串数组,我将将其发送到其他方法,它必须是一个字符串数组。由于我不知道要输入多少个字符串,我无法预测将使用多少个字符串,我正在使用arrayList。但是当我尝试将arrayList转换为简单数组时,我在编译器中遇到了无法访问的语句错误。我在这里得到错误: String[] gradic = new String[lista.size()];这是我的代码的其余部分:public static main(){    Scanner in = new Scanner(System.in);    System.out.println("Enter strings (empty line to end):");    List<String> list = new ArrayList<String>();    while (true){        String x = in.nextLine();        if (x.equals(" ")) continue;        lista.add(x);    }    String[] x0 = new String[list.size()];    lista.toArray(x0);}我希望 arrayList 变成 String[] 数组。
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

这个循环没有任何 ,所以程序不能退出它:break


while (true){


    String x = in.nextLine();


    if (x.equals(" ")) continue;


    lista.add(x);

}

可能你是想写的:


while (true){

    String x = in.nextLine();

    if (x.equals(" ")) break;

    lista.add(x);

}


查看完整回答
反对 回复 2022-09-01
?
翻阅古今

TA贡献1780条经验 获得超5个赞

如果您刚刚开始使用 Java 编程,请不要使用 ,即使有适当的休息时间也是如此。如果要在用户键入特定内容时停止读取输入,请对此进行测试:while(true)


Scanner in = new Scanner(System.in);

System.out.println("Enter strings (empty line to end):");


List<String> list = new ArrayList<String>();


String input = "";


while (!input.equals(" ")) { // If this is your break condition: test for it.

    input = in.nextLine();

    if (!input.equals(" ")) {

      list.add(input);

    }

}

检查两次吗?是的。是“低效”吗?不是你应该关心的事情,或者甚至可以在这种类型的代码中有意义地评论。它是否明确了此代码对人类读者应执行的操作?非常如此,这对于您将要编写的代码很重要。input


查看完整回答
反对 回复 2022-09-01
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

通常,如果条件在编译时计算为 true(例如常量),则 while 循环不能有代码,如果 while 之后有代码,则 while 循环必须具有某种中断语句。如果一段时间后没有代码,那就没问题了。while(true)break;while([condition])



查看完整回答
反对 回复 2022-09-01
  • 3 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信