声明说:
一家钢笔制造商对其产品进行了自动化质量控制。当一个 钢笔符合最低要求,质量控制单位写字母“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/