gpt4 book ai didi

Java 代码不允许使用我的变量

转载 作者:行者123 更新时间:2023-12-01 16:47:05 25 4
gpt4 key购买 nike

当我尝试运行此代码时,它不允许我使用“bmi”。我正在尝试制作一个简单的体重指数计算器,但我不明白为什么它不起作用。如果你能正确地重写代码,它会帮助我更好地学习。

import java.util.Scanner;

public class Bmi {
int weight;
int height;
int bmi = weight /(height*height) * 703;

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter weight: ");
int weight = input.nextInt();
System.out.print("Enter height: ");
int height = input.nextInt();
System.out.println(bmi);
}

}

最佳答案

您正在尝试在静态上下文中使用非静态成员。

这里你实际上不需要任何实例/静态变量。只需使用局部变量即可。

import java.util.Scanner;

public class Bmi {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter weight: ");
int weight = input.nextInt();
System.out.print("Enter height: ");
int height = input.nextInt();
int bmi = weight /(height*height) * 703;
System.out.println(bmi);
}
}

虽然这在现实世界中不会发生,但当你的高度大于体重时,由于整数除法的发生,你最终会为零。最好把它们改成 double 。读一读Why is the result of 1/3 == 0?

public static void main(String[] args) {   
Scanner input = new Scanner(System.in);
System.out.print("Enter weight: ");
double weight = input.nextInt();
System.out.print("Enter height: ");
double height = input.nextInt();
double bmi = weight / (height * height) * 703;
System.out.println(bmi);
}

终于

int bmi = weight /(height*height) * 703;

该语句不会跟踪体重和高度值。每次它们发生变化时,您都需要重新评估。

关于Java 代码不允许使用我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48589256/

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