30/09/2018, 18:12
Code Java tìm USCLN bị lỗi Exception StackOverflowError khi chạy
public class Bai2 {
int x;
Bai2 b2 = new Bai2();
public static void main(String [] args) {
Bai2 b2 = new Bai2();
System.out.println(b2.UCLN(6, 9));
}
public int UCLN(int a, int b) {
while (a != b) {
if(a > b) a = a - b;
else b = b - a;
}
return a;
}
}
AI giải thích giúp mình vì sao lại bị lỗi đó với. Và tại sao phải sửa hàm UCLN thành static thì mới chạy được. Mình cám ơn.
Bài liên quan
Lỗi là do
Khi tạo object b2 trong main nó sẽ tạo b2 ở trong class và lặp đi lặp lại như vậy. chỉ cần xóa dòng này đi là OK
M chưa hiểu lắm, bài khác mình vẫn gọi bt
ok ok, cám ơn b nhé