sách gpt4 ai đã đi

Biến Java không khả dụng trong các phương thức khác nhau trong một lớp - Người mới

In lại 作者:行者123 更新时间:2023-12-01 04:32:05 26 4
mua khóa gpt4 Nike

我是 Java 新手,我到处寻找,但我没有得到一个简单的概念。

我将两个变量声明为 int。我希望这两个变量对于所有方法都是全局的。在我的第一个方法中,我想从用户输入中获取第一个变量的值。然后我希望第二个方法可以使用、识别并调用该新值。然而,每次第一个方法结束时,变量的值都会被设置回0,而第二个方法找不到用户在第一个方法输入中赋予它的值。我究竟做错了什么?我需要以不同的方式声明我的变量吗?我需要以不同的方式声明我的方法吗?感谢您的帮助!

import acm.program.*;

public class FindRange extends ConsoleProgram {

int num1;
int num2;

công khai void run() {

println("This program finds the largest and smallest numbers.");

getNum1();
getNum2();
// getNumUntilZero();
}

public void getNum1() {

int num1 = readInt("?:");
if (num1 == 0) { //do not accept 0 for first number
println("Please try again without 0.");
getNum1();
}

}

public void getNum2() {
int num2 = readInt("?:");
if (num2 == 0) { //if 2nd number is 0, print 1st num as high and low nums
println("Biggest number:" + num1);
println("Smallest number:" + num1);

}
}
}

1 Câu trả lời

当您在方法 getNum1() 中执行 int num1 = readInt("?:"); 时,它是存储在 stack 中的局部变量。它不引用您想要引用的全局变量(声明为实例变量)

所以这样做:

public void getNum1() {
num1 = readInt("?:");
if (num1 == 0) { // do not accept 0 for first number
println("Please try again without 0.");
getNum1();
}
}

public void getNum2() {
num2 = readInt("?:");
if (num2 == 0) { // if 2nd number is 0, print 1st num as high and low nums
println("Biggest number:" + num1);
println("Smallest number:" + num1);
}
}

关于Java 变量在类中的不同方法中不可用 - 新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875683/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com