public class Demo1 {
public static void main(String[] args) {
int[] arr ={19, 28, 37, 46, 50};
System.out.print("输出当前数组:" + "{");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
if (i == arr.length - 1) {
System.out.println(arr[i] + "}");
}
}
}
}
if (i == arr.length - 1) {
System.out.println(arr[i] + "}");
}else{
System.out.print(arr[i] + ", ");
}
要输出这个?
主要是在你的if判断那里
你用for循环打印了这个数组的内容,然后每次循环判断是否为数组的最后一个元素。
问题就出在了最后一次循环,if条件成立,此时打印的内容为arr[i] + "}" arr[i] = 50。
程序是顺序执行的,你的for循环里面的第一句打印数组内容,此时不会管if的条件是否成立,因为还没有执行到这里。
打印完了以后继续 往下执行,判断条件是否相等,相等,打印。条件成立是循环到最后一个元素。这里面你自己有打印了数组的最后一个数字,所以是两个50.
参考如下:
public static void main(String[] args) {
int[] arr = {19, 28, 37, 46, 50};
System.out.print("输出当前数组:" + "{");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i] + "}");
}else{
System.out.print(arr[i] + ", ");
}
}
}
输出逻辑有问题呗,给你参考一下
public class Demo1 {
public static void main(String[] args) {
int[] arr ={19, 28, 37, 46, 50};
System.out.print("输出当前数组:" + "
{");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] );
if (i < arr.length - 1) {
System.out.print( ",");
}
}
System.out.println("}");
}
}
为啥不用toString方法呢?
public static void main(String args[]){
int[] arr ={19, 28, 37, 46, 50};
System.out.print("输出当前数组:" + Arrays.toString(arr));
}