Java普通数组交换第一个与第三个元素运行报错如何解决?
问题原因
- Java类的成员位置只能定义成员变量、方法、构造器、静态块/实例块等结构,不能直接编写可执行的赋值语句。你写的三行交换代码中,后两行是对数组元素的赋值操作,属于执行语句,直接放在类体中不符合Java语法规范,因此会触发编译报错:
vector[0] = vector[2]; // 执行语句,不能直接放在类体位置 vector[2] = temp; // 执行语句,不能直接放在类体位置
- 你后续将三行交换代码移动到
run()方法内的操作是正确的,方法内部可以存放执行逻辑,符合Java语法要求,因此修改后可以正常运行。
修正后的完整可运行代码
public class Lab1 { public static void main( String args[] ) { new Lab1().run(); } int[] vector = {23, 42, 3, 42, 6}; public void run() { // 交换逻辑放到方法内部 int temp = vector[0]; vector[0] = vector[2]; vector[2] = temp; System.out.println(vector[0]); System.out.println(vector[2]); System.out.println(vector[vector.length-1]); System.out.println(temp); } }
内容的提问来源于stack exchange,提问作者Brendan Williams
相关产品推荐
相关产品推荐

