gpt4 book ai didi

java - java中while循环外部调用的值

转载 作者:行者123 更新时间:2023-12-01 19:52:08 25 4
gpt4 key购买 nike

我有两个数据文件。数据为 double 型。文件一由 3 列和几行组成,文件二由 4 列和几行组成。我在一个 Java 程序中分别从两个文件中读取数据,并且 File1 的第一列数据与 File2 的第一列数据匹配,然后一条消息将显示数据匹配,否则数据不匹配。我的代码是这样的

import java.io.File;
import java.util.Scanner;

public class F1 {
public static void main(String args[])throws Exception{
Scanner Y =new Scanner(new File("C:\\R5_M.txt"));
Scanner X =new Scanner(new File("C:\\R5_O.txt"));
double a=0.0,b=0.0,c,d=0.0,e=0.0,f,g,h;
if(a==d) {
while (X.hasNext()) {
a = X.nextDouble();
b = X.nextDouble();

c = X.nextDouble();
}


while (Y.hasNext()) {
d = Y.nextDouble();
e = Y.nextDouble();

f = Y.nextDouble();
g = Y.nextDouble();

}

System.out.println("They are matched");
}
else{
System.out.println("Not Matched");
}

}

}

它的输出是These were match for only one time。但它应该写入等于行数的输出。如果我在两个数据文件中都有 10 行,并且 6 个数据匹配,4 个不匹配,那么我会得到输出 They were matched for 6 times and Not Matched for 4 times。

一个明显的原因是两个 while 循环都在该范围内结束。因此 a、b、c、d、e、f、g 的更改值仍保留在范围内,或者我应该说它们在每次迭代中被覆盖如果我在 while 循环之外调用 a 和 d,那么它仅返回最后一个值,在本例中是第 10 个值。那么我应该在哪里写 if 语句来比较每个值呢?

最佳答案

你需要这样做

 public static void main(String args[])throws Exception{
Scanner Y =new Scanner(new File("C:\\R5_M.txt"));
Scanner X =new Scanner(new File("C:\\R5_O.txt"));
double a=0.0,b=0.0,c,d=0.0,e=0.0,f,g,h;
while(X.hasNext() && Y.hasNext()){
a = X.nextDouble();
b = X.nextDouble();

c = X.nextDouble();

d = Y.nextDouble();
e = Y.nextDouble();

f = Y.nextDouble();
g = Y.nextDouble();

if(a==d) {
System.out.println("They are matched");
}
else{
System.out.println("Not Matched");
}
}

关于java - java中while循环外部调用的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51028625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com