iT邦幫忙

0

JAVA初學者,麻煩高手幫忙解答

我有答案知道結果了,但是我想知道為什麼會這樣
1.請問程式執行結果是?為什麼?

public class Asd {

public static void main(String[] args) {

int a=3;

if (a<2){

System.out.println("aaa");

System.out.print("bbb");

}

if (a<1)

System.out.println("ccc");

System.out.println("ddd");

}

}

2.請問執行結果,為什麼?
public class Asd {

public static void main(String[] args) {

StringBuffer a=new StringBuffer("123");

StringBuffer b=a;

a.append("111");

System.out.println(b);

}

}

3.請問下面程式何者錯誤?為什麼

A double a=12.0; float b=a;
B long a=12; float b=a;
C double a=12.0; long b=a;
D short a=12.0; int b=a;

  1. 請問下面程式何者錯誤?為什麼?

A double a=12L;
B long a=12F;
C double a=12.0D;
D short a=12L;
5.請問下面程式何者錯誤?為什麼?

A double a=12.0; float b=(float)a;
B long a=12; float b=(float)a;
C double a=12.0; long b=(long)a;
D short a=12.0; int b=(int)a;

2
最佳解答

為什麼不是問hello world
我對不起我大學的JAVA 老師QQ

mosil iT邦新手 4 級 ‧ 2012-10-22 09:17:49 檢舉
8
wiseguy
iT邦超人 1 級 ‧ 2012-10-20 17:41:34

你的問題很奇怪《想知道為什麼會這樣》令人一頭霧水 ....
你學習 Java 這個程式語言,不就是為了學習了解那些題目為什麼會是那個答案的嗎?
學了大括號的意義與用法,第 1 題就知道為什麼了
學了"參考"的意義與用法,第 2 題就知道為什麼了
學了變數型態的長度、位數,第 3,4,5 題就知道為什麼了
要不然你學 Java 是學了什麼?

看更多先前的回應...收起先前的回應...
l1232001 iT邦新手 5 級 ‧ 2012-10-20 18:34:01 檢舉

不好意思,因為這是老師的回家測驗,我才剛學2個禮拜,很多指令都還不知道,所以才想來這邊請教一下,對不起我是初學者

小成 iT邦高手 10 級 ‧ 2012-10-20 20:10:47 檢舉

你不是說你知道結果了?
那何不說說你的結果是甚麼?而你又哪裡不懂?
只有PO出題目,看起來很像只是想叫人幫你做作業而已

l1232001 iT邦新手 5 級 ‧ 2012-10-20 20:47:22 檢舉

剛剛按照大大建議研究了一下講義,知道為什麼了,這是線上測驗,我就算不知道為什麼還是可以繳卷,只是想知道為什麼會錯誤,做作業我會靠自己,請你不要隨便評論我

wiseguy iT邦超人 1 級 ‧ 2012-10-20 21:14:34 檢舉

初學者也不必說對不起,每個人都曾是初學者過來的啊!
你不知道,只是你還不熟,學程式語言無他,就是熟到像吃飯喝水那樣不必思考就能直覺地知道,遇到什麼問題應該用什麼解,如此而已。

jamesfisher iT邦研究生 5 級 ‧ 2012-10-20 21:16:47 檢舉

學習就是要虛心接受指教.別認為別人給意見是應該的.
重點是自己學到了什麼技術與觀念.

小成 iT邦高手 10 級 ‧ 2012-10-20 21:22:53 檢舉

我沒有評論你,我只是說你給人家的感覺,我說的是【看起來很像是要怎樣】,因為這種情況在網路上太多太多。
問問題有其方法,如果你是真的想要學習,有更好的問問題方法,你才能得到你想學習的東西
以你的問題來說,你並沒有提到你哪裡不懂,一下子丟了這麼多題目上來直接要人解說,也得看看有沒有佛心的人願意長篇大論的寫一堆來告訴你,而長篇大論可能還不見得切中你到底哪裡不懂的核心
不過有很多高手看到這樣子的問問題方式,是會直接跳過的

ted99tw iT邦高手 1 級 ‧ 2012-10-20 21:27:05 檢舉

esyc提到:
是會直接跳過的

嗯嗯,對不起我剛跳過了,現在趕緊回頭來看esyc大的佛心之論....囧

是說esyc大這麼長篇大論的寫一堆,不知有沒有切中人家的情緒核心....毆飛

jazozazo iT邦高手 1 級 ‧ 2012-10-20 21:34:56 檢舉

我有答案知道結果了,但是我想知道為什麼會這樣

看來樓主只知道要打字
學習過程中該聽進去的沒啥理解
就很像我以前上課的同學
老師的操作練習題 打的都很順利
但是稍微換個題目或者是換個數值
就一堆問題發生
最後追蹤出來就是
老師剛講的沒聽進去
剛好在想其他事情

magician iT邦研究生 2 級 ‧ 2012-10-20 21:48:13 檢舉

iT邦幫忙MVPwiseguy提到:
但是稍微換個題目或者是換個數值
就一堆問題發生

我也是耶~~~汗汗

所以我到現在還是不會~~哭哭失神失神

小成 iT邦高手 10 級 ‧ 2012-10-20 23:07:41 檢舉

ted99tw提到:
是說esyc大這麼長篇大論的寫一堆,不知有沒有切中人家的情緒核心....

晚點看看我有沒有被罵就知到了...落寞

esyc提到:
晚點看看

他如果會再出現
我請你吃美味蟹堡

ted99tw iT邦高手 1 級 ‧ 2012-10-21 15:49:48 檢舉

海綿寶寶真是粉久揍~~~偷笑

l1232001 iT邦新手 5 級 ‧ 2012-10-23 21:53:38 檢舉

抱歉我沒有好好看清楚題目,自己的理解能力不夠,
我有再去看講義了解了,我的問題方式不對 我會好好檢討
我也不是上來丟個問題就在等答案
我不聰明 但是我努力想學

ted99tw iT邦高手 1 級 ‧ 2012-10-23 22:44:42 檢舉

l1232001提到:
我的問題方式不對 我會好好檢討

一定是因為樓主這麼說的關係讓esyc大的怪獸最近猛得贈品筆記本什麼的....,吼~真讓人忌肚 ....抗議

是說玩IT怪獸公司也要粉有耐力才行,唉...這就是我所欠缺滴呀...Orz

賽門 iT邦超人 1 級 ‧ 2012-10-23 23:29:56 檢舉

結果...最佳解答是...Hello World?!落寞

4
Ethan Jhuang
iT邦研究生 3 級 ‧ 2012-10-22 10:02:46

第一題考你對if判斷的熟悉度
因為if(a<2)後面是用{}包起來
所以只要不符合條件(a<2)的{}裡面全部都不會執行
後面
if (a<1)因為沒有{}
所以只有System.out.println("ccc"); 屬於(a<1)這個判斷式

最後的System.out.println("ddd");
跟前面那些東西都沒關係,不管怎樣都會印出。

第二題只是考你對append的熟悉度而已
也就是在a這東西後面加上111
那你的StringBuffer b=a
所以就會是123111了

第三題
考你對於變數的了解
public static void main(String[] args) {
System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个位數,正的20億左右
System.out.println(Integer.MIN_VALUE); //負的2的31次方
System.out.println(Long.MAX_VALUE); //2的64次方-1,19个位數
System.out.println(Long.MIN_VALUE); //負的2的64次方
System.out.println(Float.MAX_VALUE); //2的128次方-1,38个位數,比long多了一倍
System.out.println(Float.MIN_VALUE); //2的-149次方
System.out.println(Double.MAX_VALUE); //2的1024次方-1,308个位數,是float位數的10倍
System.out.println(Double.MIN_VALUE); //2的-1074次方
}
去跑跑看
自己看結果
可以把範圍小的值指定給大的
可是不能把大的值指定給小的

後面也都是大概差不多的概念

2
sam0407
iT邦高手 1 級 ‧ 2012-10-23 11:28:25

我也有答案了,但是不知道您為什麼不懂,所以不知道要怎麼回答您?請詳述您不懂之處,才有人能幫您!

我要發表回答

立即登入回答