Java 数组,双精度,IF/Else
我假设用一个数字数组而不是字符串来编写代码,它们必须是双精度的。我写代码的方式,我知道的唯一方式,是如何工作的。也许我把它弄得太复杂了,一个数组会使它变得简单。我是编程新手,几天之内就开始了。请帮忙 我们需要的是: 编写一个代码,平均输入10个数字,并显示平均值以及它们是否通过。如果<50失败,否则>50通过 我们必须使用数组,我们需要使用JOptionPane.showMessageDialog.,数字需要是双精度的,并四舍五入到两位小数 我声明了double,但是如果我输入一个十进制数,我会得到一个错误。如果我只是按原样运行代码,它会让我输入10个数字,平均值,然后告诉我通过还是失败。当谈到使用其他因素时,我就不知所措了。谢谢 工作守则如下:Java 数组,双精度,IF/Else,java,Java,我假设用一个数字数组而不是字符串来编写代码,它们必须是双精度的。我写代码的方式,我知道的唯一方式,是如何工作的。也许我把它弄得太复杂了,一个数组会使它变得简单。我是编程新手,几天之内就开始了。请帮忙 我们需要的是: 编写一个代码,平均输入10个数字,并显示平均值以及它们是否通过。如果50通过 我们必须使用数组,我们需要使用JOptionPane.showMessageDialog.,数字需要是双精度的,并四舍五入到两位小数 我声明了double,但是如果我输入一个十进制数,我会得到一个错误。如果
package avgpassorfail;
import javax.swing.JOptionPane;
public class Avgpassorfail {
public static void main(String[] args) {
String firstNumber,
secondNumber,
thirdNumber,
fourthNumber,
fifthNumber,
sixthNumber,
seventhNumber,
eighthNumber,
ninethNumber,
tenthNumber;
double number1,
number2,
number3,
number4,
number5,
number6,
number7,
number8,
number9,
number10,
sum;
firstNumber =
JOptionPane.showInputDialog ( "Enter 1st Grade" );
secondNumber =
JOptionPane.showInputDialog ( "Enter 2nd Grade" );
thirdNumber =
JOptionPane.showInputDialog ( "Enter 3rd Grade" );
fourthNumber =
JOptionPane.showInputDialog ( "Enter 4th Grade" );
fifthNumber =
JOptionPane.showInputDialog ( "Enter 5th Grade" );
sixthNumber =
JOptionPane.showInputDialog ( "Enter 6th Grade" );
seventhNumber =
JOptionPane.showInputDialog ( "Enter 7th Grade" );
eighthNumber =
JOptionPane.showInputDialog ( "Enter 8th Grade" );
ninethNumber =
JOptionPane.showInputDialog ( "Enter 9th Grade" );
tenthNumber =
JOptionPane.showInputDialog ( "Enter 10th Grade" );
number1 = Integer.parseInt ( firstNumber);
number2 = Integer.parseInt ( secondNumber);
number3 = Integer.parseInt ( thirdNumber);
number4 = Integer.parseInt ( fourthNumber);
number5 = Integer.parseInt ( fifthNumber);
number6 = Integer.parseInt ( sixthNumber);
number7 = Integer.parseInt ( seventhNumber);
number8 = Integer.parseInt ( eighthNumber);
number9 = Integer.parseInt ( ninethNumber);
number10 = Integer.parseInt ( tenthNumber);
sum = (number1 + number2 + number3 + number4 + number5 + number6 + number7 + number8 +number9 + number10)/10;
JOptionPane.showMessageDialog (
null, "The Average is " + sum, "Results",
JOptionPane.PLAIN_MESSAGE);
if (sum < 50){
JOptionPane.showMessageDialog (
null, "Fail", "Results",
JOptionPane.PLAIN_MESSAGE);
}else{
JOptionPane.showMessageDialog (
null, "Pass", "Results",
JOptionPane.PLAIN_MESSAGE);
}
System.exit ( 0 );
}
}
包avgpassorfail;
导入javax.swing.JOptionPane;
公共类Avgpassorfail{
公共静态void main(字符串[]args){
字符串firstNumber,
第二个号码,
第三十号,
第四位,
第五位,
第六位,
第七位,
第八位,
九号,
十分号;
双数1,
第二,
第三,
第四,
5号,
6号,
7号,
8号,
9号,
10号,
总和
头号=
JOptionPane.showInputDialog(“输入一级”);
第二号码=
JOptionPane.showInputDialog(“输入二年级”);
第三十号=
JOptionPane.showInputDialog(“输入三年级”);
第四号码=
JOptionPane.showInputDialog(“输入四年级”);
第五号码=
JOptionPane.showInputDialog(“进入5年级”);
第六号=
JOptionPane.showInputDialog(“进入6年级”);
第七号=
JOptionPane.showInputDialog(“进入7年级”);
第八号码=
JOptionPane.showInputDialog(“输入8年级”);
九号=
JOptionPane.showInputDialog(“进入9年级”);
十分号=
JOptionPane.showInputDialog(“输入10级”);
number1=Integer.parseInt(firstNumber);
number2=Integer.parseInt(第二个数字);
number3=Integer.parseInt(第三个数字);
number4=Integer.parseInt(第四个数字);
number5=Integer.parseInt(第五个数字);
number6=Integer.parseInt(第六个数字);
number7=Integer.parseInt(第七个数字);
number8=Integer.parseInt(第八个数字);
number9=Integer.parseInt(NineHnumber);
number10=Integer.parseInt(tenthNumber);
总和=(1+2+3+4+5+6+7+8+9+10)/10;
JOptionPane.showMessageDialog(
null,“平均值为”+总和,“结果”,
JOptionPane.普通消息);
如果(总和<50){
JOptionPane.showMessageDialog(
空,“失败”,“结果”,
JOptionPane.普通消息);
}否则{
JOptionPane.showMessageDialog(
空,“通过”,“结果”,
JOptionPane.普通消息);
}
系统出口(0);
}
}
number1=Integer.parseInt(firstNumber)
希望收到一个“看起来”像整数的字符串,如果您给它一些“看起来”像其他任何东西的东西,您将收到一个错误。您应该改为使用Double.parseDouble(firstNumber)代码>
是的,你绝对应该使用数组。数组的使用允许一个更短的程序
public class UseArrays {
public static void main(String[] args){
int numberOfEntries=10
double[] numbers =new double[numberOfEntries];
for(int i=0;i< numbers .length;i++){
String option =
JOptionPane.showInputDialog ( "Enter Grade " + i );
numbers[i]=Double.parseDouble(option);
}
double sum=0;
for(int i=0;i< numbers .length;i++){
sum+=numbers[i];
}
double average=sum/10;
System.out.println(average);
}
}
公共类使用数组{
公共静态void main(字符串[]args){
int numberOfEntries=10
double[]数字=新的double[numberOfEntries];
for(int i=0;i
还要注意的是,用这种方式创建的程序,除了要短得多的写入时间外,更改条目的数量非常容易。如果你有成百上千甚至上百万的条目,你就不会想手工输入每个条目
通过不存储每个double,然后在以后添加它们(这也会使使用数组变得不必要),可以使该程序更短。这个程序看起来像
public class DontUseArrays {
public static void main(String[] args){
int numberOfEntries=10
double sum=0;
for(int i=0;i< numberOfEntries;i++){
String option =
JOptionPane.showInputDialog ( "Enter Grade " + i );
double number=Double.parseDouble(option);
sum+=number;
}
double average=sum/10;
System.out.println(average);
}
}
公共类dontuserrays{
公共静态void main(字符串[]args){
int numberOfEntries=10
双和=0;
for(int i=0;i
哇,这是一大堆重复。您可能应该使用循环来清理此问题,如:
double sum = 0; // initialize variable for sum of all the numbers
for (int i = 1; i <= 10; i ++) { // go from 1 to 10
String strNum = JOptionPane.showInputDialog("Enter grade #" + i); // prompt for input
double dNum = Double.parseDouble(strNum); // convert to double
sum += dNum; // add to sum
}
double avg = sum / 10; // now get the average
double sum=0;//初始化所有数字之和的变量
对于(int i=1;i要将字符串
解析为double
类型,请使用double.parseDouble(字符串s)
您可以将从Integer.parseInt(字符串s)
返回的int
s分配给double
变量,因为double
s的精度高于int
s,因此类型转换自动进行,无需显式转换
但是,根据定义,不能使用Integer.parseInt(字符串s)
解析任何小数点为int
的字符串
另外一点-无需声明字符串
变量,也无需为每个数字指定单独的变量-使用数组和循环输入数字会更简洁,可能还会在输入数字时求和,例如:
double[] numbers = new double[10];
double sum = 0d;
for(int i = 0; i < numbers.length; i++ ) {
numbers[i] = Double.parseDouble(JOptionPane.showInputDialog ( "Enter 1st Grade" ));
sum += numbers[i];
}
double mean = sum / numbers.length;
double[]数字=新的double[10];
双和=0d;
for(int i=0;ipublic void test() {
double[] numbers = new double[10];
double sum = 0;
for ( int i = 0; i < numbers.length; i++ ) {
String number = JOptionPane.showInputDialog ( "Enter Grade "+(i+1) );
numbers[i] = Double.parseDouble(number);
sum += numbers[i];
}
}
package avgpassorfail;
import javax.swing.JOptionPane;
public class Avgpassorfail
{
public static void main(String[] args)
{
String[] mumStr = new String[10];
double sum = 0;
for (int i = 0; i < numStr.length; i++) //0 to 10 (10 not included)
{
numStr[i] = JOptionPane.showInputDialog ( "Enter Grade " + (i+1)+ ": " );
sum += Double.parseDouble(numStr[i]);
}
double avg = sum / numStr.length;
JOptionPane.showMessageDialog (null, "The Average is " + avg, "Results", JOptionPane.PLAIN_MESSAGE);
if (avg < 50)
{
JOptionPane.showMessageDialog (null, "Fail", "Results", JOptionPane.PLAIN_MESSAGE);
}
else
{
JOptionPane.showMessageDialog (null, "Pass", "Results", JOptionPane.PLAIN_MESSAGE);
}
System.exit ( 0 );
}
}