好的,我对网上找到的问题感到有些困惑。当电阻上升一个时,我需要编写一个能够解决 watts 的类,即电阻从1
开始,每个for循环1 ohm
都会添加到其中:1 ohm
然后2 ohm
然后3 ohm
等等。
我已经完成了所有这些:总共有3个电阻,其中2个有预置欧姆。现在我需要循环9次。
我已经完成了所有计算,我得到了它的输出。这个问题为您提供了一些信息和打印输出。现在我需要让我的打印看起来一样。
我有for循环工作,但现在我需要使用if语句来找到最高瓦数,并说出电阻器的总数是多少欧姆。
我不是要求直接回答问题,而是在可能的情况下更多地指出正确的方向。
事先我要感谢帮助过我的人。
public class Question51
{
public static void main(String[] args)
{
double Vs = 12, V1, V2, V3, I1, I2, I3, R1 = 10, R2 = 15, R3 = 1, Rpar, PowerInR3;
for(R3 = 1; R3 <= 9; R3++)
{
Rpar = (R2 * R3)/(R2 + R3);
I1 = Vs/(R1 + Rpar);
V1 = I1 * R1;
V2 = Vs - V1;
I2 = V2 / R2;
I3 = V2 / R3;
PowerInR3 = V2 * I3;
System.out.println("When r3 = "+R3+" Ohms, Power in R3 = "+PowerInR3+" watts.");
}
}
}
答案 0 :(得分:1)
你应该声明一个max
变量并用一些非常低的值初始化它。例如Double.MIN_VALUE
。
然后在循环的每次迭代中,您都可以像这样更新最大值:
max = Math.max(max, valueYouWantToCompare);
现在找到正确的Java语法:-)祝你好运!
答案 1 :(得分:0)
您需要执行以下操作:
在for循环中,使用if检查maxPower的最后一个值是否大于当前阻力产生的功率。如果是这种情况会改变你的假设,说这可能是最大值并且循环下一个电阻值。
public class Question51
{
public static void main(String[] args)
{
double Vs = 12, V1, V2, V3, I1, I2, I3, R1 = 10, R2 = 15, R3 = 1, Rpar, PowerInR3;
double maxResister = 0, maxPower = Double.MIN_VALUE;
for(R3 = 1; R3 <= 9; R3++)
{
Rpar = (R2 * R3)/(R2 + R3);
I1 = Vs/(R1 + Rpar);
V1 = I1 * R1;
V2 = Vs - V1;
I2 = V2 / R2;
I3 = V2 / R3;
PowerInR3 = V2 * I3;
if (maxPower < PowerInR3) {
maxPower = PowerInR3;
maxResister = R3;
}
System.out.println("When r3 = "+R3+" Ohms, Power in R3 = "+PowerInR3+" watts.");
}
System.out.println("Max Power when Resistance is " + maxResister + " ohms is " + maxPower + " watts");
}
}