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 如果在循环中未按预期工作,则_Java_Loops_If Statement - Fatal编程技术网

Java 如果在循环中未按预期工作,则

Java 如果在循环中未按预期工作,则,java,loops,if-statement,Java,Loops,If Statement,我从文本文件(“text.txt”)中读取行,然后将它们存储到树形图中,直到单词apply出现 但是,在执行此操作之后,我没有在树映射中希望的最后一行“4应用” text.txt 1添加 3乘 4应用 6加上 扫描仪输入=新扫描仪(文件); while(input.hasNextLine()){ String line=input.nextLine(); 字符串[]divline=line.split(“”); 树映射值=新树映射(); 如果(!divline[1].equals(“apply”

我从文本文件(“text.txt”)中读取行,然后将它们存储到树形图中,直到单词apply出现

但是,在执行此操作之后,我没有在树映射中希望的最后一行“4应用”

text.txt
1添加
3乘
4应用
6加上

扫描仪输入=新扫描仪(文件);
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
树映射值=新树映射();
如果(!divline[1].equals(“apply”))
{
value.put(Integer.valueOf(divline[0]),divline[1]);
} 
其他的
{
value.put(Integer.valueOf(divline[0]),divline[1]);
打破
}
System.out.println(值);
}

您每次都在while循环中创建新的映射。在while循环之前输入以下代码

TreeMap<Integer, String> valores = new TreeMap();
TreeMap valores=newtreemap();
此外,还需要更正地图内容的打印。因此,您的最终代码可以是

Scanner input = new Scanner(file);
TreeMap<Integer, String> valores = new TreeMap();
     while(input.hasNextLine()){

        String line = input.nextLine();
        String[] divline = line.split(" ");           

        if(!divline[1].equals("apply")){
            valores.put(Integer.valueOf(divline[0]), divline[1]);   
        } else {
            valores.put(Integer.valueOf(divline[0]), divline[1]);
            break;
        }             

    }

for (Entry<Integer,String> entry: valores){
   System.out.println(entry.getKey() + "- "+entry.getValue());
}
扫描仪输入=新扫描仪(文件);
TreeMap valores=新的TreeMap();
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
如果(!divline[1].equals(“apply”)){
valores.put(Integer.valueOf(divline[0]),divline[1]);
}否则{
valores.put(Integer.valueOf(divline[0]),divline[1]);
打破
}             
}
用于(条目:valores){
System.out.println(entry.getKey()+“-”+entry.getValue());
}
您正在为每一行创建一个新的“valores”
TreeMap
,然后打印包含该行的
TreeMap
。在“应用”的情况下,您也可以这样做,创建一个新的映射,将值放在那里-只有通过断开,您才能跳过
System.out.println
部分


您需要将树映射的声明放在while之前。

4apply
被添加到
valores
映射,但它不会被打印,因为您在打印语句之前打破了循环

此外,您可能需要将
valores
map的创建移动到
while
循环之前。以及循环后的打印

    TreeMap<Integer, String> valores = new TreeMap();

    while(input.hasNextLine()){

    String line = input.nextLine();
    String[] divline = line.split(" ");

    if(!divline[1].equals("apply")){
        valores.put(Integer.valueOf(divline[0]), divline[1]);   
    } else {
        valores.put(Integer.valueOf(divline[0]), divline[1]);
        break;
    }
    }

    System.out.println(valores);
TreeMap valores=newtreemap();
while(input.hasNextLine()){
String line=input.nextLine();
字符串[]divline=line.split(“”);
如果(!divline[1].equals(“apply”)){
valores.put(Integer.valueOf(divline[0]),divline[1]);
}否则{
valores.put(Integer.valueOf(divline[0]),divline[1]);
打破
}
}
系统输出打印LN(valores);
没有“if循环”这样的东西。您可以放置
valores.put(Integer.valueOf(divline[0]),divline[1])外部de
ìf
    TreeMap<Integer, String> valores = new TreeMap();

    while(input.hasNextLine()){

    String line = input.nextLine();
    String[] divline = line.split(" ");

    if(!divline[1].equals("apply")){
        valores.put(Integer.valueOf(divline[0]), divline[1]);   
    } else {
        valores.put(Integer.valueOf(divline[0]), divline[1]);
        break;
    }
    }

    System.out.println(valores);