黑马程序员技术交流社区
标题:
关于程序中的一点经验和 if使用求教!
[打印本页]
作者:
张钧杰
时间:
2012-11-5 13:23
标题:
关于程序中的一点经验和 if使用求教!
本帖最后由 张钧杰 于 2012-11-8 14:04 编辑
/*
1、printArray
*/
class ArraySort
{
public static void main(String[] args) {
int[] arr = {3,2,8,7,6,1};
printArray(arr);
}
//printArray
public
S
tatic void printArray(int[] array){
System.out.print("[");
for (int i = 0; i < array.length; i++) {
//打印数组最后一个不带" , "逗号
if (i!=array.length-1) {
System.out.print(array
+",");
}
else
System.out.print(array
);
}
System.out.println("]");
}
}
上段代码的中,关键字,我不小心打成了大写
S
,造成好多问题,,让我费了好大的周拆找问题,其实是个小问题,
---------- javac ----------
ArraySort.java:14: 错误: 需要<标识符>
public Static void printArray(int[] array){
^
ArraySort.java:14: 错误: 方法声明无效; 需要返回类型
public Static void printArray(int[] array){
^
2 个错误
一定要从错误提示开始找问题,不然的,你会很头痛,咋一眼看上去,啥问题没有,你要看
^
左右两边找错
误,
需要<标识符>
你就看看,左右两边关键字和标识符,对不对,然后我把 S改成小写s就不报错了,就编译成功了,一个错误,对我们没经验了,可是要命啊,可能要找几十分钟也找不出来。
下面说一下,if语句使用的问题。
for (int i = 0; i < array.length; i++) {
//打印数组最后一个不带" , "逗号
if (i!=array.length-1) {
System.out.print(array
+",");
}
System.out.print(array
);
}
刚开始,我没使用 else打印出来的正常。。
[3,2,8,7,6,1]
后来确打印出来的是。
[3,32,28,87,76,61]
if 下面第一条语句不是 else意思吗???
作者:
朱宏青
时间:
2012-11-5 13:28
本帖最后由 朱宏青 于 2012-11-5 13:37 编辑
让我稍微看一下..
大致看懂了
for (int i = 0; i < array.length; i++) {
//打印数组最后一个不带" , "逗号
if (i!=array.length-1) {
System.out.print(array+",");
}
System.out.print(array);
}
复制代码
重点在于
System.out.print(array);
部分.
首先我要说的是if(){}else{}假如你不带else系统是不会给它自己加上去的.明白?
所以说if(){}else{System.out.print()}跟if(){}System.out.print()是不一样的.前者在if条件为false的时候才会进行System.out.print(),后者则已经跟这个if没有关系了,无论前面的if里的内容是否运行,它都会System.out.print();明白?
所以以上代码才会导致重复输出.
顺便我还要说下,这真的是数组?为什么没有下标.应该是
array[i]
复制代码
这样才对吧.请注意规范...(我去,我知道了,这论坛貌似过滤了后面那几个符号..坑爹.)
作者:
吴刚
时间:
2012-11-5 13:32
public
S
tatic void printArray(int[] array){
System.out.print("[");
for (int i = 0; i < array.length; i++) {
//打印数组最后一个不带" , "逗号
if (i!=array.length-1) {
System.out.print(array
+",");
}
else
//少了一个{
System.out.print(array
);
}
System.out.println("]");
}
}
楼主,你的程序有一个很明显的错误,就是书写错误,else下面少了一个括号,括号要成对敲才可以哦。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2