gpt4 book ai didi

java - A = B 不等于 B = A 吗?

转载 作者:行者123 更新时间:2023-12-02 10:49:43 26 4
gpt4 key购买 nike

为什么我的代码在initialAge = Age;处是错误的?

当我在网上看到一个解决方案时,它应该被交换为age=initialAgeA = BB = A 不一样吗?

<小时/>
public class Person {
private int age;

public Person(int initialAge) {
if (initialAge >=0){
initialAge = age;
}else if( initialAge < 0){
age =0;
System.out.println("Age is not valid, setting age to 0.");

}
// Add some more code to run some checks on initialAge
}

public void amIOld() {
// Write code determining if this person's age is old and print the correct statement:
if (age < 13){
System.out.println("You are young.");
} else if ( age >= 13 && age < 18){
System.out.println("You are a teenager.");
}else {
System.out.println("You are old.");
}
}

public void yearPasses() {
age++;
// Increment this person's age.
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int age = sc.nextInt();
Person p = new Person(age);
p.amIOld();
for (int j = 0; j < 3; j++) {
p.yearPasses();
}
p.amIOld();
System.out.println();
}
sc.close();
}
}

最佳答案

在Java中,变量赋值是right-to-left associative 。对于您的理论示例,在赋值上下文中,A = B 意味着 B 的值现在存储在 A 中。交换它意味着 A 的值存储在 B 中。

数学等价是通过== 运算符实现的。 = 始终表示赋值。

至于为什么你的代码中 initialAge =age 是错误的 - initialAge 是一个参数,它的值在方法返回后就会丢失,所以重新分配它是一个有争议的问题。您的字段 age 的默认值为 0,因为它没有获取 initialAge 的值。

关于java - A = B 不等于 B = A 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52267334/

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