2012-12-24 33 views
5

Tôi nhận được cảnh báo mã chết trong vòng lặp for tại số i++. Tại sao tôi nhận được điều đó và làm cách nào để giải quyết vấn đề này?Java - mã chết trong vòng lặp

public static boolean Method(int p) { 
    for(int i = 2; i < p; i++) { // here is the problem, at i++ 
     if(p % i == 0);   
      return false; 
    } 
    return true;  
} 
+0

giá trị của p ở đây là gì? –

+2

Bạn đã lừa tôi! Dấu chấm phẩy đó khó nhìn thấy ... –

+0

@jmendeth nó luôn luôn! :) – Sikorski

Trả lời

3

Vấn đề là ở dòng này:

if(p % i == 0); 

Remove dấu chấm phẩy và thử lại

12

Bạn luôn thoát khỏi vòng lặp ngay lập tức, do đó i không bao giờ được tăng lên.

if(p % i == 0);   
     return false; 

nên

if(p % i == 0)  
     return false; 

Trong phiên bản đầu tiên bạn có một khoản trống sau câu lệnh if (do các dấu chấm phẩy đầu tiên). Do đó, return false luôn thực thi. Bạn thoát khỏi phương thức và i++ không bao giờ thực thi.

7

Xóa dấu chấm phẩy sau câu hỏi if của bạn.

1

Nếu mã của bạn được mở rộng sau đó nó sẽ trở thành

 public static boolean Method(int p) { 
     for(int i = 2; i < p; i++) { // here is the problem, at i++ 
      if(p % i == 0) 
      { 

      } 
      return false; //If you give return statement here then how it will work. 
     } 
     return true;  
    } 
Các vấn đề liên quan