Java 要求用户提供0到180之间的角度(以度为单位)

Java 要求用户提供0到180之间的角度(以度为单位),java,Java,我的程序接受我输入的任何数字,即使是一百万>< 但我只想让用户输入一个0到180度的角度,然后输出 该角度的正弦、余弦和切线 这是我的节目: import java.util.Scanner; import java.text.DecimalFormat; public class Mathematics { public static void main(String args[]) { System.out.println("Enter an Angle "); S

我的程序接受我输入的任何数字,即使是一百万>< 但我只想让用户输入一个0到180度的角度,然后输出 该角度的正弦、余弦和切线

这是我的节目:

import java.util.Scanner;
import java.text.DecimalFormat;
public class Mathematics
{
  public static void main(String args[])
  {

    System.out.println("Enter an Angle ");
    Scanner data = new Scanner(System.in);
    int x;
    x=data.nextInt();

    double sinx = Math.sin( Math.toRadians(x) );
    double cosx = Math.cos( Math.toRadians(x) );
    double tanx = Math.tan( Math.toRadians(x) );

    DecimalFormat format = new DecimalFormat("0.##");
    System.out.println("Sine of a circle is  " + format.format(sinx));
    System.out.println("cosine of a circle is  " + format.format(cosx));
    System.out.println("tangent of a circle is  " + format.format(tanx));

  }
}

将此代码放在
x=data.nextInt()之后

if(x<0 | | x>180)
{
抛出新异常(“您输入了无效值”);
}
如果用户输入的数字超出范围[0180],则会导致程序崩溃。 如果希望允许用户重试,则需要将程序放入循环中,如下所示:

do
{
    System.out.print("Enter a value in [0, 180]: ");
    x = data.nextInt();
} while(x < 0 || x > 180);
do
{
System.out.print(“在[0180]中输入一个值:”;
x=data.nextInt();
}而(x<0 | | x>180);

此循环将继续,直到用户输入所需的值。

将此代码放在
x=data.nextInt()之后

if(x<0 | | x>180)
{
抛出新异常(“您输入了无效值”);
}
如果用户输入的数字超出范围[0180],则会导致程序崩溃。 如果希望允许用户重试,则需要将程序放入循环中,如下所示:

do
{
    System.out.print("Enter a value in [0, 180]: ");
    x = data.nextInt();
} while(x < 0 || x > 180);
do
{
System.out.print(“在[0180]中输入一个值:”;
x=data.nextInt();
}而(x<0 | | x>180);
此循环将继续,直到用户输入所需的值。

而不是

x = data.nextInt();

do{
x=data.nextInt();
如果(x<0 | | x>180){
System.out.println(“请输入0-180之间的数字”);
}
}而(x<0 | | x>180);
而不是

x = data.nextInt();

do{
x=data.nextInt();
如果(x<0 | | x>180){
System.out.println(“请输入0-180之间的数字”);
}
}而(x<0 | | x>180);

把问题循环起来。当用户输入的值超出您的范围时,打印错误消息并请求其他值。当输入的值为OK时,您可以退出循环。最好使用函数使内容更具可读性:

public static int askForInt(String question, String error, int min, int max) {
    while (true) {
       System.out.print(question + " (an integer between " + min + " and " + max + "): ");
       int read = new Scanner(System.in).nextInt();
       if (read >= min && read <= max) {
          return read;
       } else {
          System.out.println(error + " " + in + " is not a valid input. Try again.");
       }
    }
}
公共静态int askForInt(字符串问题、字符串错误、int最小值、int最大值){
while(true){
系统输出打印(问题+“(介于“+min+”和“+max+”之间的整数:”);
int read=新扫描仪(System.in).nextInt();

如果(read>=min&&read将问题放入循环。当用户输入的值超出您的范围时,打印错误消息并请求其他值。当输入的值正常时,您可以退出循环。最好使用函数使内容更可读:

public static int askForInt(String question, String error, int min, int max) {
    while (true) {
       System.out.print(question + " (an integer between " + min + " and " + max + "): ");
       int read = new Scanner(System.in).nextInt();
       if (read >= min && read <= max) {
          return read;
       } else {
          System.out.println(error + " " + in + " is not a valid input. Try again.");
       }
    }
}
公共静态int askForInt(字符串问题、字符串错误、int最小值、int最大值){
while(true){
系统输出打印(问题+“(介于“+min+”和“+max+”之间的整数:”);
int read=新扫描仪(System.in).nextInt();

如果(read>=min&&read,可能是这样,但很可能是这样,但OP已经做出了相当大的努力来回答问题,并且正在就单个问题寻求帮助……是的,这是一个家庭作业问题,问题如下练习4.Trigonology.java编写一个程序,要求用户输入一个0到180度之间的角度,并输出该角度的正弦、余弦和切线,四舍五入到小数点后2位。“是的,我是一名学生,对编程一无所知……可能是这样,但很可能是这样,但OP已经做出了相当大的努力来回答这个问题,并且正在就一个问题寻求帮助……是的,这是一个家庭作业问题,问题是这样的“练习4.Trigonology.java编写一个程序,要求用户输入0到180度之间的角度,并输出该角度的正弦、余弦和切线,四舍五入到小数点后2位。”是的,我是一名学生,编程新手……我想
抛出新的IllegalArgumentException(..
可能更适合这种情况。也许,但是值x不是任何东西的参数,它是用户输入…我认为
抛出新的IllegalArgumentException(..
更适合这种情况。也许,但是值x不是任何东西的参数,它是用户输入…不必挑剔,但此代码不必要地复杂(if语句是多余的)-Sameh Kamal爵士我的名声不久前是12岁,现在是18岁,现在我可以接受答案了^ ^不要挑剔,但这个代码不必要地复杂(if声明是多余的)-Sameh Kamal爵士我的名声不久前是12岁,现在是18岁,现在我可以接受答案了^_^