java - 我们如何使用从一种方法到另一种方法的变量,例如我试图将一个变量除以另一个
问题描述
我正在尝试在 pointsaverage 方法中将变量从 pointsearned 和 creditsearned 方法中划分出来,但是当我运行它时它会给出“你的平均成绩是 NaN”,我该如何解决这个问题?(我是初学者)
public class JavaApplication40 {
static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
double credits = 0;
double Points = 0;
double average = 0;
IDnumber();
CreditsEarned(credits);
PointsEarned(Points);
System.out.println("Your grade point average is" + PointAverag(average, Points, credits));
}
public static void IDnumber(){
String docNuMBER;
System.out.println("Enter your student ID number ");
docNuMBER = keyboard.nextLine();
}
public static double CreditsEarned( double credits){
double NumCreditsEarned;
System.out.println("Enter your Credit hours earned");
NumCreditsEarned = keyboard.nextDouble();
return NumCreditsEarned;
}
public static double PointsEarned(double points){
double NumberOpoints;
System.out.println("Enter your credit points");
NumberOpoints = keyboard.nextDouble();
return NumberOpoints;
}
public static double PointAverag(double grade , double NumberOpoints ,
double NumCreditsEarned) {
double average ;
average = NumberOpoints/NumberOpoints;
return average ;
解决方案
这是您的程序中发生的事情:
您将 'credits' 和 'points' 设置为 0。当您将这两个变量传递给 'pointAverag' 时,它们没有被修改
System.out.println("Your grade point average is" + PointAverag(average, Points, credits));
从字面上看,这条线是这样做的:
System.out.println("Your grade point average is" + PointAverag(0, 0, 0));
并最终导致:
average = 0/0
在“PointAverag”中,当存储在双精度中时,它是 NAN。
注意这一行:
average = NumberOpoints/NumberOpoints;
它有逻辑错误。它将始终存储 1 或 NAN。
正如评论中提到的,您需要通过在其中存储方法“PointsEarned”和“CreditsEarned”的返回值来更新这些变量“credits”和“points”:
CreditsEarned(credits);
PointsEarned(Points);
变成
credits = CreditsEarned(credits);
points = PointsEarned(Points);
希望这可以帮助。
推荐阅读
- scala - 如何从顶点输入文件创建 VertexRDD?
- ruby-on-rails - 我可以在我的代码的一个 simple_form 中禁用 select2 吗?
- java - Reactive Mongo - DeleteAllBy... 查询 - 找不到类型类 java.lang.Void 的 PersistentEntity
- java - Java 节点交换
- php - 尝试在 woocommerce 的结帐页面中的总部分之后放置自定义字段
- sql-server-2016 - DATEPART MILLISECONDS 从 COMPATIBILITY_LEVEL 120 到 130 的差异
- node.js - 保护我的 ExpressJS 服务器路由,它们将通过 cURL 访问
- r - 如何在没有表达式功能的情况下将上标添加到 ggplot 标签?
- java - 将 JSON 记录转换为 LinkedHashMap
使用杰克逊 API - webdav - 实施 WebDAV ACL:我应该修改还是替换访问条目?