具体来说,在 while 循环中有一些逻辑区域不允许程序正确流动。我已经完成了这个循环,它应该可以工作。我遇到的一些错误是当我输入“0”时它不会立即退出,换句话说,我必须按两次 0,这对我来说没有意义,除非我没有正确理解 while 循环。另一个错误是在我的 add() 方法中,我输入的内容只会告诉我输入的第一个数字。所以我相当肯定错误在我的循环中,但我看不到逻辑错误来自哪里。任何帮助将不胜感激,谢谢。
import javax.swing.JOptionPane;
public class RandyGilmanP2 {//Begin class
public static void main(String[] args) {//Begin main
JOptionPane.showMessageDialog(null, "Hello Welcome to Sum and Average"
+ "\n of a Number Calculator Program"
+ "\n By: Randy Gilman");
//Declare variables
float add = 0;//used to store the sum of the numbers inputed
float numb = input();//used to store the value of Input() method
float average;
int count = 0;// Used as a counter variable
//Loop that will be controlled by a sentenil value
while (numb != 0) {//Begin for loop
count += 1;
//Call Input method
input();
numb = input();
//Method to find the sum of all the numbers inputed
sum(add,numb);
add = sum(add,numb);
//Used to find the average of all the numbers entered (sum / count)
}//End for loop
avg(add,count);
average = avg(add,count);//used to store the average of the numbers
Results(count,add,average);
}//End Main
public static float input(){//Begin Method
//Will keep gathering input from user until input is equal to 0
String NumberString = JOptionPane.showInputDialog("Enter a floating point number"
+ "(The program ends when 0 is entered):");
//Convert string to float
float number = Float.parseFloat(NumberString);
return number;
}//End Method
public static float sum(float sum, float numb2){//Begin method
//Add number to the previous number to compute total
sum += numb2;
if (sum > 100)
JOptionPane.showMessageDialog(null, "***WARNING***" + "\n The sum of your numbers exceed 100");
return sum;
}//End Method
public static float avg(float num1, float num2){
//Declare variables
float result;
//Preform calculation of average
result = num1 / num2;
return result;
}//End Method
public static void Results(int counter, float addition, float aver){//Begin method
//Declare variables
JOptionPane.showMessageDialog(null,"The total amount of numbers you entered are: " + counter);
JOptionPane.showMessageDialog(null,"The sum of the numbers you have entered is: " + addition);
JOptionPane.showMessageDialog(null,"The average of the numbers you have entered is: " + aver);
}//End Method
}//End Class