Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java编译器在while循环中中断转义逻辑_Java_Loops_While Loop - Fatal编程技术网

Java编译器在while循环中中断转义逻辑

Java编译器在while循环中中断转义逻辑,java,loops,while-loop,Java,Loops,While Loop,我有一个代码片段,如下所示: List<EmailTemplate> langTemplates = emailTemplateMap.get(categoryId+"_"+languageId); while (langTemplates.isEmpty() && altLanguageId <= Language.ALL.length) { langTemplates = emailTemplateMap.get(categoryId+"_"+altL

我有一个代码片段,如下所示:

List<EmailTemplate> langTemplates = emailTemplateMap.get(categoryId+"_"+languageId);

while (langTemplates.isEmpty() && altLanguageId <= Language.ALL.length)
{
  langTemplates = emailTemplateMap.get(categoryId+"_"+altLanguageId);
  altLanguageId++;
}
List langTemplates=emailTemplateMap.get(categoryId+“”+languageId);

while(langTemplates.isEmpty()&&altLanguageId哦,顺便说一句,我的问题不是如何解决这个问题。很容易避免这种行为。但是我想了解为什么编译器(被允许)这样做。你到底在说什么?从我所看到的来看,这两个代码片段是等价的——这就是为什么编译器可以更改它。(如果确实如此,也就是说,反编译器可能认为这看起来像源代码中的for循环,所以它将其转换回for循环。)我看不出有什么不同。你能举一个例子说明它没有按预期工作吗?请记住,编译器没有改变任何东西,因为它没有将你的源代码转换成其他源代码。这只是反编译器的一个工件。作为一个新手,我“发现”编译器/工具每隔一天出错一次……现在我知道任何有趣的行为都很可能是我的错,或者是我误解或误读了什么。
List langTemplates;
for(langTemplates = (List)emailTemplateMap.get((new StringBuilder(String.valueOf(categoryId))).append("_").append(languageId).toString()); langTemplates.isEmpty() && altLanguageId <= Language.ALL.length; altLanguageId++)
{
  langTemplates = (List)emailTemplateMap.get((new StringBuilder(String.valueOf(categoryId))).append("_").append(altLanguageId).toString());
}