java - 未使用笔百分比

标签 java

声明说:

一家钢笔制造商对其产品进行了自动化质量控制。当一个 钢笔符合最低要求,质量控制单位写字母“S”,否则写“N”,最终确定时写“F”。考虑到每次之后 这些字符对设备进行了“介绍/输入”。编写一个程序来计算 未达到最低制造要求的钢笔百分比。应该 设备正确写入数据。 (Boligrafos.java)。

我输入了这段代码:

import java.util.Scanner;

  public class Boligrafs {

    public static void main ( String [] args ) {

    Scanner sc = new Scanner (System.in);

    String estat;
    int contador1 = 0, contador2 = 0;
    float percentatge;

    System.out.println("Introdueix un estat del boligraf");
    estat = sc.next();

    while (estat == "S" || estat == "N") {
      if (estat == "S"){
        System.out.println("Introdueix un estat del boligraf");
        estat = sc.next();
      }
      else if (estat == "N"){
        System.out.println("Introdueix un estat del boligraf");
        estat = sc.next();
        contador1 = contador1 + 1;
      }
    contador2 = contador2 + 1;
    }
    if (estat == "F") {
      System.out.println("Has finalitzat");
    }

    percentatge = 100 * contador1 / contador2;
    System.out.println("El percentatge es:"+percentatge+"%");

  }
}

我无法理解这个错误,因为我认为我的程序是正确的:

线程“main”中的异常 java.lang.ArithmeticException:/为零 在Boligrafs.main(Boligrafs.java:32)

最佳答案

问题在于您使用 == 将您输入的字符串与程序中硬编码的字符串进行比较。将所有==替换为.equals(),问题就应该解决了。

例如,将 estat == "S" 替换为 estat.equals("S")

关于java - 未使用笔百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26886691/

相关文章:

Java 字符串检查

java - Libgdx java,纹理更新方法困惑

java - 根据文件调用实例方法 updateValues

java - 如何从与 Java 中的某个表达式匹配的字符串中获取值?

java - 如何使用数组来缩短这段代码

java - 与try和catch相关的异常处理

java - 使用 Spring 禁用 Controller 端点

java - 如何从数组中选择最大值?

java - 为什么在 IDEA 中创建的默认 Play 应用程序在启动时崩溃,并将 Akka 2.3.3 声明为依赖项?

java - ehcache上的@Cacheable方法和@Cacheable类有什么区别