【问题标题】:What difference does it make what values you put on either side of a equals sign?你在等号两边放什么值有什么区别?
【发布时间】:2021-02-16 16:00:00
【问题描述】:
import java.util.Arrays;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int size = input.nextInt();
        int[] grades = new int[size];

        for(int i=0; i < size; i++){
            int x = input.nextInt();
            grades[i] = x; **<<<<<< When i use this one i get the correct answer and i can input some numbers and they show up in a array**
            x = grades[i]; **<<<<<< However here i input my numbers but the array shows up as zeros only. Why?**

    }
    System.out.println(Arrays.toString(grades));

        }

【问题讨论】:

  • = 不是数学上的等号,而是赋值A = B 的意思是“给A B 的值”。这不是对称操作。
  • 赋值总是FROM右边TO左边。如果您的问题不同,那么我不明白,请对问题本身添加一些评论。
  • 试试myvar = 33 = myvar看看会发生什么...

标签: java arrays for-loop arraylist integer


【解决方案1】:

= 不是数学上的等号,而是赋值

在 Java 中,A = B 的意思是“给 A 的值 B”。

这不是对称操作,因为您之后更改了A 的值,但没有更改B

因此,grades[i] = x; 将您刚刚从扫描仪读取的值分配给数组的一个元素;但是x = grades[i] 正在用存储在该数组元素中的任何内容覆盖您刚刚读取的值。

默认情况下,Java 数组用零填充;如果您不为元素分配不同的值,那就是您将打印的内容。

【讨论】:

  • "mathematical equals" 在许多编程语言中是A == B,它比较两个值而不改变它们。 A = B 将改变A 的内容,并返回与A 相同的值,以便在以后的计算中使用(如果需要)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 2015-11-05
相关资源
最近更新 更多