作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一种方法来查找 2 个给定数字的公因数,但我无法编译该文件。我所有的大括号都已关闭,因为我知道这通常几乎总是导致此错误的原因。希望有人能帮助我!
import java.util.Scanner;
public class E1{
public static void main (String [] args){
Scanner kb = new Scanner(System.in);
double n1,n2;
System.out.println("Enter two numbers");
n1=kb.nextDouble();
n2=kb.nextDouble();
printCommonFactors(n1,n2);
}
//call a method that prints the positive shared factors of the 2 inputed numbers
public static void printCommonFactors(int n1,int n2){
//determining the max/min of the two inputed variables
int max,min;
max=Math.max(n1,n2);
min=Math.min(n1,n2);
//setting up 2 arrays to store the factors
int [] maxFactors = new int [max];
int [] minFactors = new int [min];
int counter1;
for (inti=0;i>max;i++)
if (i%max=0)
counter1++;
maxFactors[counter1]=i;
for (int i=0;i>min;i++)
if (maxFactors[i]%min=0)
maxFactors[i]=
}
}
这是我收到的错误:
最佳答案
您看到“解析时已到达文件末尾”的原因是解析器希望找到等于运算符的右侧操作数,但未能做到这一点。您可以使用 maxFactors[i]=
结束您的方法。二元运算符始终需要右侧操作数。在这种情况下,您必须在等号后面放置一个值。
此外,您似乎正在尝试将一些可能从其他语言中提取的原则应用于 Java。这里最明显的一个是使用空白替换显式 block 。这适用于 Python 等语言,但不适用于 Java。缩进在Java中并不重要,只有提高可读性的作用。
这与您的 for
语句相关。因为您实际上并未使用 block ,所以这些语句实际上是等效的:
for (inti=0;i>max;i++)
if (i%max=0)
counter1++;
maxFactors[counter1]=i;
for (inti=0;i>max;i++) {
if (i%max=0) {
counter1++;
}
}
maxFactors[counter1]=i;
这将导致 i
被超出其范围引用的问题。另一个问题是 for
初始化器 (inti=0;
) 缺少空格,应该是 int i = 0
。
其他问题包括尝试分配非整数大小的数组(必须是 int 类型)以及对 for
循环使用错误的测试表达式( >i>min
如果由于您的增量器而曾经为真,则将始终保持为真,直到达到整数溢出为止。
关于java - Java错误: reached end of file while parsing (Not typical),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47661385/
我是一名优秀的程序员,十分优秀!