作者TonyQ (骨头)
看板java
标题Re: [问题] 麻烦帮我看个简单的程式
时间Wed Apr 12 22:25:44 2006
※ 引述《star574 (这就是人生!!)》之铭言:
: ※ 引述《qrtt1 (隐者)》之铭言:
: 不好意思!!人非圣贤孰能无过!!!!
: 谢谢各位~我现在已经知道我的程式是哪里错了
: 虚心的请教~换来他人的不齿....
: 真是抱歉了!!!!!!!!!!!!!!
底下有些话可能说的有些重,因为我是一向看人态度说话,
但是能把这些事情听进去,对你以後在这条路上走,应该会有帮助。
不想看人说教的话,这边直接按←离开吧,不勉强。
--
虽然不少的教授都不会教Error Message的判读,
(cannot resolve symbol ; ";" expected ; ...etc)
但是基本的判断是该会的,
至少,该把Exception Message读过一遍。
有些人连看都不看,就丢出来说,"帮我看看这程式哪跑不出来"。
通常看到不懂的Exception Message都是直接丢GOOGLE,
到目前为止碰过的Exception在google上都有合理的解释。
这些错误是每个程式设计师都有可能会犯的错,
像很多人写程式也常打错大小写拼错字,只是透过的讯息都会告诉你。
如果以前没注意到这些讯息,就请你现在好好注意一下。
就拿你的程式码当例子好了,刚好也是很典型的问题跟反应。
===========================================================================
像你的程式码 丢到complier就会跟你讲。
Max.java:
10:
';' expected
}
^
1 error
会指"}"不是说是"}"错,而是告诉你,在读到"}"之前应该要先读到";"。
看到";" expected,如果没想到要检查程式码有没有漏打分号,
那基本观念有待加强。
===========================================================================
"蛤? 我打了分号 可是从一个错变成九个错耶 "
这时候你要分成两个方向去看,
一个是你本来的一个错,是不是正确解决了。
另一个是九个错,到底错在哪。
就算变成一百个错,也不能改变它是错的本质。
像这种忘记打";"的事情,一看就知道是不对的,要改。
跟是不是一个错变九个错有何相干? 您说是吧 :)
像今天这九个错,跟前面的错是独立的,
只是因为你打错了arg的变数名字。
底下有帮你把Exception Message的重点标出来。
==========================================================
max.java:3:
cannot find symbol
symbol : variable args
location: class Max
int max=Integer.parseInt(args[0]);
^
max.java:4:
cannot find symbol
symbol : variable args
location: class Max
int n = args.length;
^
max.java:5:
cannot find symbol
symbol : variable i
location: class Max
for(i=1 ; i<=n-1 ; i++)
^
max.java:5:
cannot find symbol
symbol : variable i
location: class Max
for(i=1 ; i<=n-1 ; i++)
^
max.java:5:
cannot find symbol
symbol : variable i
location: class Max
for(i=1 ; i<=n-1 ; i++)
^
max.java:7:
cannot find symbol
symbol : variable args
location: class Max
if(max<Integer.parseInt(args[i]))
^
max.java:7:
cannot find symbol
symbol : variable i
location: class Max
if(max<Integer.parseInt(args[i]))
^
max.java:9:
cannot find symbol
symbol : variable args
location: class Max
max=Integer.parseInt(args[i]);
^
max.java:9:
cannot find symbol
symbol : variable i
location: class Max
max=Integer.parseInt(args[i]);
^
9 errors
==========================================================
这只是单纯变数名字打错跟宣告打错的问题,
却要花人数分钟到十分钟的时间去了解你的程式逻辑;
不喜欢用脑袋编译的人,
要copy你的程式码到程式去看它的Exception message;
copy完後告诉你该怎麽解决,还可能又出现的一些哩哩
抠抠又不知道哪里打错的问题。
我是一直都不介意回覆这种问题啦,但是重点是,
问这些问题,花了别人时间回答,对你自己到底有没有帮助。
或许你会觉得不回答就算了,
干麻装大牌耍脾气,讲的好像新手就是该死一样。
首先,
文人相轻,自古而然。
可能人家在这方面的领域就是比你有经验,也曾在这问题上痛过,
所以他有资格耍大牌。
就像你去找教授问它这个程式为什麽写不出来,
有高达90%以上的教授不会很乐意回覆你。 (90% 应该是很保守的数字吧??)
其次,
天助自助者,
不想看人脸色最好的方式就是不要给人回覆你的机会,
自己想办法Google或者check到没问题。
我当初入门的时候,光helloworld照着书打,包括环境设定,
花了整整三天才跑出一个hello world,那时候还很有野心的
想知道甚麽是public & void & main & String & args & class
後来过了两个月才真的了解这些是甚麽东西XD
这些问题拿去问人,除非你问到一样和你有同样苦痛经验的人,
不然通常只会得到一个绝对正确,但是帮助不大的答案。
==============================================================
这篇文章说的可能有点重,我也不是甚麽大咖或强者,
只是我喜欢写Java,我不喜欢debug,但是debug完我会有很大的成就感。
我对於找资料回答别人或自己的问题的热诚,远大於自己去问别人问题。
毕竟,能够自己主动去求知的东西,干麻被动的等别人来告诉你。:)
当初刚接触Java版的时候,这些问题可能过个一两个月都没人回,
现在版上是比较热闹了一点,仔细观察就会发现其实就是那麽一群人,
像一些基本的入门问题,
可能就比较会有像我这麽鸡婆的人会一直爱呛又爱回。
每次期中考要到了,这类的问题就比较多,那些常驻的回文机器会比较
不耐烦也是正常的,人总有脾气。
你可能不能理解,因为有些时候会觉得在网路上只是一对一,
但是对於习惯在这里回文和解决问题的人,很可惜的似乎都一对多。
问题总是比有意愿帮忙回文的人多。
以前看过某版的版规,摘录其中一条的大意给你参考。
"问问题可以,但是答案跟态度只待有缘人。"
另外底下这篇文章可以建议您看看,应该会比较释怀一些。
http://mis.ndhu.edu.tw/docu/question.htm
我会这麽说是因为,在学校的课程上并没有学到甚麽,
可是我也是透过自己翻阅我们的教科书(某本原文的书,非圣经本。P)
上面有一些哩哩抠抠的范例码,透过改范例码去了解内容,
这样一直不断的学过来的,老实说我自己是很乐意每天花上几个小时,
打上几篇文章,做一些可能的猜测。尽可能的解决其他人的"小"问题,
只能解小问题,因为大问题我也解不起。(笑)
但是除了解题之外,
如果是参考文献的,我会引用文献来源,
如果是搜寻引擎得来的资料,我会给关键字。
这只是,总是会希望这些使用者,在阅读完我们po文章後,
除了解决问题,也能学习到"如何解决问题"。
当然引用这些讯息也可以使得文章的正确性能更有保障一点,
因为纯粹靠经验有时候不见得完全正确。:)
这种东西很难靠这样一句两句的教啦,总结一句话,"经验"。
zanyking会这麽说,也是希望使用者能在提问的时候,
先自己好好的处理过问题,只是他的标准比我高。
(其实也差不多是一般的标准。)
我想每个人对"合理问题"的标准都不太一样吧。
这篇文章我犹豫很久,决定还是让它流出去,
诸位在这领域上的先辈,也欢迎你们提供你们的意见,
以利小弟能将思想上可能的谬误做一审慎的思考与反省。:)
GL & HF
TonyQ
--
String temp="relax"; | Life just like programing
while(buringlife) String.forgot(temp); | to be right or wrong
while(sleeping) brain.setMemoryOut(); | need not to say
stack.push(life.running); | the complier will
stack.push(scouting.buck()); | answer your life
stack.push(bowling.pratice()); | Bone
everything
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.240.57