2013-11-16 3 views
0

Я делаю программу для выполнения синус, косинус, тангенс функцию, и я в процессеМои переменные не будут учитываться, так как компилятор считает, что они не могут быть порождал

Однако, поскольку я использовал если-то еще о , он считает, что моя переменная (stepc) не может быть инициализирована. Поскольку Триг графики повторяются, я пытаюсь сделать все графики под диапазоне от 0 до 360.

import java.util.Scanner; 

public class Trigonometry 
{ 
    public static void main(String[]args) 
    { 
     double answer; 
     double x; 
     double stepa; 
     double stepb; 
     double stepc; 
     double stepd; 

     Scanner scanner = new Scanner (System.in); 
     System.out.print("Enter number"); 
     x = scanner.nextDouble(); 

     stepa = Math.abs(x); 

     stepb = stepa/360 ; 

     if(stepb > 1)     // <-- my functions for step c 
     { 
      while (stepb>1) 
      { 
       stepc = stepb - 1; 
      } 
     } 
     else 
     { 
      stepc=stepb; 
     } 

     stepd=stepc*360;   // <-- won't consider step c 

     System.out.println(stepc); 
    } 
} 
 
----jGRASP exec: javac -g Trigonometry.javaenter code here 

Trigonometry.java:34: variable stepc might not have been initialized 
stepd=stepc*360; 
^ 
1 error 

----jGRASP wedge2: exit code for process is 1. 
----jGRASP: operation complete. 

ответ

0

Initialize stepc к значению некоторого умолчанию при определении его.

0

Вам необходимо присвоить ему значение, прежде чем вы сможете его использовать.

+0

друзья, мои ценности будут входные числа людей ... – user2999870

0

Вы пытались присвоить значения вашим переменным step [abcd] при их инициализации?

Кроме того, если stepb> 1, ваш код, как написано, никогда не завершится. Понимаете, почему?

+0

Сэр, Входные значения людей значения, присваиваемые шагам – user2999870

+0

Спасибо, выяснил – user2999870

+0

@ user2999870: конечно, но если вы объявите double stepa = 0.0 ;, более поздняя операция присваивания перепишет нуль. –

0

Как отметили другие, использование:

double answer; 
    double x; 
    double stepa; 
    double stepb; 
    double stepc = 0; 
    double stepd; 

редактировать: никакого вреда в присвоении значений других переменных тоже.

также следует помнить, что этот цикл, вероятно, работает бесконечно:

 while (stepb>1) 
     { 
      stepc = stepb - 1; 
     } 
+0

Спасибо, друг, дал бы ему значение переписать значения, которые люди вводили в него? – user2999870

+0

Поскольку вы даете переменной значение при ее инициализации, она ничего не будет отменять. (и они все еще могут получить новое значение, потому что они не являются «последними»). – ljgw

Смежные вопросы