2015-01-23 1 views
-1

Я работаю над этим проектом, проект работает нормально, но он показывает «путающий отступ» и «присваивать возвращаемое значение новой переменной» предупреждения и Я понятия не имею, что это такое. Это строка с предупреждением:Сообщение, говорящее «путающее отступы» и «присваивание возвращаемого значения новой переменной»

System.out.printf ("Сумма квадратов:% .0f \ n", tsquee);

Ниже представлен полный проект. Благодаря!

double n = 0; 
    while (n < 25) 
    { 
     n = n + 1; 
     if (n > 25) 
      break; 

     System.out.printf("%3.0f%15.2f%16.2f%17.2f%15.2f\n", n, Math.cbrt(n), Math.sqrt(n), Math.pow(n, 3), Math.pow(n, 2)); 

    } 

    { 
     double tsquee = 0.0, tsqueer = 0.0; 
     int csq = 0, ccube = 0; 

     for (n = 0; n <= 25; n++) 
      tsquee += Math.pow(n, 2); tsqueer += Math.sqrt(n); 

     for (n = 0; n <= 25; n++)  
     if (Math.pow(n, 2) > 250) 
     {  
      csq++; 
     }  
     else if (Math.pow(n, 3) > 2000) 
     {  
      ccube++; 
     } 



     System.out.printf("The sum of the squares: %.0f\n", tsquee); 
     System.out.printf("The sum of the square roots: %.2f\n", tsqueer); 
     System.out.println("The number of squares greater than 250: " + csq); 
     System.out.println("The number of cubes greater than 2000: " + ccube); 
    } 


}   

Kay

+0

Предупреждение весьма специфичны. Ваш отступ очень, очень запутанный - например, посмотрите на 'if/else' в' for'. Похоже, что он находится на одном уровне, и поэтому происходит после 'for', а не внутри. –

+0

Рекомендуется использовать '{' и '}' всякий раз, когда вы используете 'for',' while', 'do',' if' или 'else'. Опущение их может привести к ошибкам. Я думаю, что каждый программист Java попал в эту ловушку в какой-то момент. –

ответ

0

«запутанные отступы» предупреждение, вероятно, потому, что в фигурных скобках, которые начинаются после того, как время цикла и идти до конца не нужно. Кроме того, ваш синтаксис for loop неверен. Я думаю, что вы хотите:

for (n = 0; n <= 25; n++) 
{ 
    if (Math.pow(n, 2) > 250) 
    {  
     csq++; 
    }  
    else if (Math.pow(n, 3) > 2000) 
    {  
     ccube++; 
    } 
} 

но я не уверен. Вам нужно заключить код, который вы хотите прокручивать внутри фигурных скобок, точно так же, как вы делали это с циклом while.

Кроме того, так как ваши два для петель имеют одинаковые пределы и условия, вы можете объединить их в один цикл:

for (n = 0; n <= 25; n++) 
{ 
    tsquee += Math.pow(n, 2); 
    tsqueer += Math.sqrt(n); // I would also put these on separate lines 

    if (Math.pow(n, 2) > 250) 
    {  
     csq++; 
    }  
    else if (Math.pow(n, 3) > 2000) 
    {  
     ccube++; 
    } 
}