2016-04-13 24 views
0

对于我正在使用的类,我试图创建一个程序,该程序可生成角度从0到0的sin(),cos()和tan()值表。 180度,每步5度。初学者,以5度为增量的基本触发表

http://i65.tinypic.com/14ahliq.jpg

到目前为止,我有下面的代码,它产生一个介绍和表的前两行,但我不知道如何让它重复。

import java.util.*; 

public class Angles { 

    public static void main(String[] args) { 
     Scanner console = new Scanner(System.in); 

     System.out.println("This program computes the"); 
     System.out.println("sin(), cos(), and tan() values"); 
     System.out.println("for angles from 0 to 180 degrees"); 
     System.out.println("in steps of 5 degrees."); 

     System.out.println(""); 

     System.out.println("Angle\tSin()\tCos()\tTan()"); 
     double Anglex = 0; 
     for(double i = 5;i <= Anglex;i += 5) { 
      Anglex = 0 + i; 
     } 
     double Sinx = Math.sin(Math.toRadians(Anglex)); 
     double Cosx = Math.cos(Math.toRadians(Anglex)); 
     double Tanx = Math.tan(Math.toRadians(Anglex)); 

     System.out.println(Anglex + "\t" + Sinx + "\t" + Cosx + "\t" + Tanx); 
    } 
} 

回答

2

重铸你for环路

for (double Anglex = 0; Anglex <= 180; Anglex += 5){

注井的开括号括多个后续语句。不要忘记平衡它与关闭};大概在拨打println之后。

使用double作为循环索引并不符合每个人的口味(如果不使用整数,可能会让自己陷入麻烦),但在这种情况下这很好,特别是当您使用<=作为停止条件。

以Java语言启动带有大写字母的变量名称也是非常规的。

+0

谢谢你,重铸我的for循环并添加{}帮助,现在我的代码工作,并感谢您使用double作为循环索引和大写字母的变量名称的提示!我对编程完全陌生,所以你是一个很好的帮助:) – Sc0426

0
for(double i = 5;i <= Anglex;i += 5) { 
    Anglex = 0 + i; 
    double Sinx = Math.sin(Math.toRadians(Anglex)); 
    double Cosx = Math.cos(Math.toRadians(Anglex)); 
    double Tanx = Math.tan(Math.toRadians(Anglex)); 
} 

括内部的{和}以上陈述。 for循环仅适用于代码中的第一条语句。

0

您的for循环仅适用于Anglex = 0 + i行。

将{}添加到应该重复的整个部分。

0
public static void main(String[] args) { 

    System.out.println("This program computes the"); 
    System.out.println("sin(), cos(), and tan() values"); 
    System.out.println("for angles from 0 to 180 degrees"); 
    System.out.println("in steps of 5 degrees."); 

    System.out.println(""); 

    System.out.println("Angle\tSin()\tCos()\tTan()"); 
    double maxAngleX = 180.0; 
    for (double angleX = 5; angleX <= maxAngleX; angleX += 5) { 

     double Sinx = Math.sin(Math.toRadians(angleX)); 
     double Cosx = Math.cos(Math.toRadians(angleX)); 
     double Tanx = Math.tan(Math.toRadians(angleX)); 

     System.out.println(angleX + "\t" + Sinx + "\t" + Cosx + "\t" + Tanx); 

    } 
} 
3

真的不好,你问论坛上的人来解决你的任务。 否则,你的小程序有几个问题(没有测试,请自己动手)。

  1. anglex应该开始在0180停止。所以for(int anglex=0; anglex<=180; anglex+=5)。在循环中使用anglex而不是i
  2. sinx,cosx,tanx的计算结果和新行的打印内容应该在{}之内。由于你的代码是现在,循环内唯一的东西是anglex的增量。

对不起,没有提供完整的解决方案,很确定你可以做到这一点。

+0

谢谢你回答,我没有要求任何人解决我的任务,只是为了告诉我我做错了什么。我要去学校教K-8数学,所以我不确定为什么这个班是一个要求,我没有以前的Java编程经验。我写了我自己到目前为止所有的代码,这对那些知道自己在做什么,但我自己却不知道的人来说似乎很容易。 – Sc0426

+0

好吧,明白了。问题是修复代码的“建议”将完全解决你的任务。对不起,听说你需要这门课为你的K-8数学教学工作,我同意它没有多大意义。 –