gpt4 book ai didi

java - pH 值 - 不断返回相同的答案

转载 作者:行者123 更新时间:2023-12-01 11:37:56 25 4
gpt4 key购买 nike

我正在制作一个程序,用户可以输入0-14之间的数字。我目前有2节课。一个用于计算,另一个用于主程序(程序运行的地方)。

计算

公开课 ph 计算{

public static final double MIN = -0.999;
public static final double stronglyAcidic =0;
public static final double acidic =2.1;
public static final double weaklyAcidic =4.1;
public static final double nearNeutralAcid =6.1;
public static final double Neutral =7;
public static final double nearNeutralBase=7.01;
public static final double weaklyAlkaline=8.1;
public static final double alkaline=10.1;
public static final double stronglyAlkaline=12.1;
public static final double MAX = 12.11;

//finds id double is acceptable

public phcalculations(double pH){
//---Not valid pH
if (pH < MIN || pH > MAX){
System.out.println(pH +" is not a vaild pH");
} else{
myValue = pH;
}


}




//method for finding pH

public String label(){
//---Not valid pH
if (myValue < stronglyAcidic || myValue > stronglyAlkaline){
return "Error";
//---Strongly Acidic 0-2
} else if(myValue>stronglyAcidic){
return "Strongly Acidic";
//---Acidic 2.1-4.0
} else if (myValue > acidic ){
return "Acidic";
//---Weakly Acidic 4.1-6.0
} else if (myValue> weaklyAcidic){
return "Weakly Acidic";
//---Near neutral 6.1-6.99
} else if (myValue >nearNeutralAcid){
return "Near Neutral";
//--Neutral 7
} else if (myValue == Neutral){
return "Neutral";
//---Near Neutral 7.01 -8
} else if (myValue > nearNeutralBase){
return "Near Neutral";
//---Weakly Acidic 8.1-10
} else if (myValue> weaklyAlkaline){
return "Weakly Acidic";
//---Alkaline 10.1-12.0
} else if (myValue > alkaline){
return "Alkaline";
//---Strongly Acidic 12.1-14
} else if (myValue>stronglyAlkaline){
return "strongly Alkaline";
} else {
return "error";
}


}


private double myValue;

}

<小时/>

主要

import java.util.Scanner;

公共(public)类 pHMain {

public static void main(String[] args) {

Scanner kbd = new Scanner(System.in);
boolean done =false;
while (!done){
System.out.println("Enter pH: ");
double pHInput = kbd.nextDouble();
if(pHInput < phcalculations.MIN ){
done =true;
} else{
phcalculations ph = new phcalculations(pHInput);
System.out.println("pH level is ---> " + ph.label());
}
}







}

}

<小时/>

为什么当我运行该程序时它会返回“强酸性”

感谢帮助。谢谢

这是用java编写的

最佳答案

您的label方法的逻辑不正确。你的第二个条件:

} else if(myValue>stronglyAcidic){

涵盖了您剩下的所有可能的值。您需要测试两侧都有边界的特定范围,而不是您拥有的单侧范围。尝试一下

} else if(myValue > stronglyAcidic && myValue < acidic){

除了最后一个之外,您的其余条件都需要类似的更换,例如

} else if (myValue > acidic && myValue < weaklyAcidic){

此外,由于您的stronglyAlkaline值不是考虑的最大值,因此您的第一个条件将错过所有“强碱性”值。尝试:

if (myValue < stronglyAcidic || myValue > MAX){

...根据您的要求,其中 MAX 可能应该是 14 而不是 12.11

关于java - pH 值 - 不断返回相同的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com