关于移除元素的一个问题,想知道代码哪里出逻辑错误了,并且应该如何改正呢:



```java
public int removeElement(int[] nums, int val) {
int j = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == val) {
while (i < nums.length && nums[i++] == val) ;
} else
nums[j++] = nums[i];
}
return j + 1;
}
```