0

我正在制作一个用于执行 sin、cos、tan 函数的程序,并且正在进行中

但是,因为我使用了 if-else 语句,所以它认为我的变量(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.java 在此处输入代码

Trigonometry.java:34:变量 stepc 可能尚未初始化
stepd=stepc*360;
^
1 个错误

----jGRASP楔2:进程退出代码为1。
----jGRASP:操作完成。
4

4 回答 4

0

定义 stepc 时将其初始化为某个默认值。

于 2013-11-16T17:37:28.243 回答
0

您必须先为其分配一个值,然后才能使用它。

于 2013-11-16T17:37:48.520 回答
0

您是否尝试在初始化 step[abcd] 变量时为其赋值?

此外,如果 stepb > 1,您的代码将永远不会终止。你明白为什么吗?

于 2013-11-16T17:41:01.033 回答
0

正如其他人所指出的,使用:

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

编辑:将值分配给其他变量也没有害处。

另外,请注意这个循环可能无限运行:

        while (stepb>1)
        {
            stepc = stepb - 1;
        }
于 2013-11-16T17:41:11.693 回答