有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java请检查我想使用的代码,当用户在第一次输入中输入0时,条件必须停止

请检查我的代码,实际上我想尝试while循环条件,如果用户输入0作为第一个数字(n1),它必须退出循环,否则继续计算

class Test{
  public static void main(String []args)  {
     Scanner sc=new Scanner(System.in);
     System.out.println("Enter two numbers:");
     float n1=sc.nextFloat();
     float n2=sc,nextFloat();
     float ans1=0;
     float ans2=0;
     float ans3=0;
     int count=0;

     while(n1!=0){
       ans1=n1+n2;
       ans2=n1*n2;
        count++;
     }

     ans3=ans1/ans2;
     System.out.println("Answer is "+ans3);
  }
}

实际输出:

Enter the number
2.0
3.0
4.0 
0
Answer is infinity

预期产量:

Enter the number
2.0
3.0
Answer is 0.83
Enter the number 
4.0
5.0
Answer is 0.45
Enter the number
0

共 (1) 个答案

  1. # 1 楼答案

    通过将所有内容移动到循环中,可以大大简化代码。然后,如果n10,您可以设置一个if条件,使break退出循环,并将loop更改为无限循环,直到调用break

    Scanner sc=new Scanner(System.in);
    while (true){
        System.out.println("Enter two numbers (0 to quit):");
    
        float n1=sc.nextFloat();
    
        if (n1 == 0){
            break; //New part of the code
        }
    
        float n2=sc.nextFloat();
        float ans1=n1+n2;
        float ans2=n1*n2;
        float ans3=ans1 / ans2;
        System.out.println("Answer is "+ans3);
    }
    

    这样0将永远不会在计算中使用,infinity将永远不会打印,因为您不会被0

    运行示例:

    Enter two numbers (0 to quit):
    1 4
    Answer is 1.25
    Enter two numbers (0 to quit):
    2 3
    Answer is 0.8333333
    Enter two numbers (0 to quit):
    0