2015-01-12 3 views
-3

Привета Я пытаюсь сделать основную программу, которая будет увеличивать заданное число до тех пор, пока не найдет следующее простое число, но я с проблемой, что делает его работуИзменение определенного значения из другого класса в Java

PrimeNumber(long eNumb) 
{ 
    number= eNumb; 
} 

public static void incrementNumber() 
{ 
    this.number = number + 1; 
} 


boolean foundNext = false; 
PrimeNumber findNext = new PrimeNumber(next); 
    while (!foundNext) 
    { 
     if (PrimeNumber.isPrime()) 
     { 
     foundNext = true; 
     } 
     else 
     { 
     FindNext.incrementNumber(); 
     } 
    } 

У меня есть метод isPrime(), но я, кажется, вхожу в бесконечный цикл. Извините, если вопрос неясен EDIT: я ввел неправильный код, но все равно хочет ответить.

+0

Является '' isPrime' проверки this.number' ? – Maroun

+1

этот код даже не компилируется. у вас есть блок за пределами любого метода. Отправьте правильный код. – Stultuske

+0

Что такое код для метода 'isPrime()'? – rapvelopment

ответ

0
foundNext = true is always true, I think you have to make it false 
any were in your program. 

Предположим,

while (!foundNext) { 
// foundNext = false; make it false on basis of any condtion 
} 
+0

условие отрицается, присваивание 'true'' найденномуNext' приведет к поломке цикла. – ryanpattison

0

Проблема Лисс здесь:

while (!foundNext) // it schould check if foundNext is prime number 

код можно упростить следующим образом:

PrimeNumber(long eNumb) 
{ 
    this.number= eNumb; 
} 

public void incrementNumber() 
{ 
    this.number++; 
} 

... // some code here. I assume that code below is inside some method. 

PrimeNumber findNext = new PrimeNumber(next); 
    while (!findNext.isPrime()) // in tis solution I assume that number is not static field 
    { 
     findNext.incrementNumber(); 
    } 
Смежные вопросы