我试图将数字输入文件并按比例计算GCM。但是我一直得到NoSuchElementException。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Prog280a {
public static void main(String[] args) {
Scanner in = null;
int greater = 1;
int lesser = 1;
int a = 1;
int b = 1;
int originalA = 0;
int originalB = 0;
try {
in = new Scanner(new File(("C:\\Users\\####\\Desktop\\####\\Eclipse\\#######\\#######2\\src\\Prog280a.dat")));
} catch (FileNotFoundException e) {
System.out.println("File is not found try again.");
System.exit(0);
}
while (in.hasNextInt()) {
while (a != 0) {
greater = in.nextInt();
lesser = in.nextInt();
if (greater > lesser) {a = greater; b = lesser;} else {b = greater; a = lesser;}
originalA = a;
originalB = b;
a = a - b;
}
System.out.println("The GCD of " + originalA + " & " + originalB + " is " + b);
a = 1;
b = 1;
}
}
}
好的,就在我说的那句话。 ' greater = in.nextInt();'系统说这是一个不可思议的例子。它为什么这样做?请帮忙。
以下是它的说法:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Prog280a.main(Prog280a.java:25)
顺便说一下,这些是文件中的数字: 25 10 81 41 255 138 847 624 84 420 182 637 620 420 36 24 75 125 1 17
答案 0 :(得分:2)
我是否正确地假设您在调用第一个greater = in.nextInt()
时不一定会出错?
因为我认为你的问题与你的循环有关。
在你的外循环中,你正确地问in.hasNext()
- 但是,在你的内循环中,你似乎在a != 0
时向前循环 - 所以,你可以继续调用greater = in.nextInt(); lesser = in.nextInt();
而不检查你的枚举是否有更多元素。
答案 1 :(得分:1)
将内部更改为,将更改为。第一个而正在创建一个连续循环,直到达到文件结尾。
$printers = Get-WMIObject -Class Win32_PrinterConfiguration | Where-Object {$_.Name -EQ "CHK.Checks"}
$printers.MediaType = 270
$printers.Put()