【发布时间】:2018-06-06 19:03:03
【问题描述】:
我的程序不断跳回到我的第二个嵌套 while 循环,我想做的是继续我的第三个嵌套 while 循环。我已经尝试自行继续,继续使用标签“她”,如下所示,也尝试过不使用 continue 语句。每次程序跳转到第二个while循环。
while((line = x.readLine()) != null){
tekst = line.split("\\s+");
if(tekst[0].equals(".PUNKT")||tekst[0].equals(".KURVE")
||tekst[0].equals(".FLATE")){
atrib = new String[100];
a = 0;
while(line != null){
if(line.equals("..NØH ")){
int []N = new int[10000];
int []Ø = new int[10000];
int []H = new int[10000];
line = x.readLine();
koord = line.split("\\s+");
i = 0;
her:while(isInteger(koord[0])){
System.out.println(koord[2]);
N[i] = Integer.parseInt(koord[0]);
Ø[i] = Integer.parseInt(koord[1]);
H[i] = Integer.parseInt(koord[2]);
i++;
line = x.readLine();
koord = line.split("\\s+");
if (koord[0].equals("..NØH ")){
line = x.readLine();
koord = line.split("\\s+");
continue her;
}
if(koord[0].equals(".PUNKT")||koord[0].equals(".KURVE")
||koord[0].equals(".FLATE")){
midl = line;
break;
}
}
【问题讨论】:
-
你试过debugging吗?
-
鉴于
line以.PUNKT、.KURVE或.FLATE开头,它如何等于"..NØH "? -
这段代码可能有很多问题。从以下开始:很可能您不应该在该 while 循环的 inside 中创建这 3 个辅助数组。并且请:使用符合 Java 命名约定的有意义的名称。 N 和 H 是可怕的名字。
-
除此之外:您真正的问题是您编写的代码过于复杂。避免这样的嵌套循环。尤其要避免标记中断/继续。
标签: java while-loop