我有答案知道結果了,但是我想知道為什麼會這樣
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;
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;
你的問題很奇怪《想知道為什麼會這樣》令人一頭霧水 ....
你學習 Java 這個程式語言,不就是為了學習了解那些題目為什麼會是那個答案的嗎?
學了大括號的意義與用法,第 1 題就知道為什麼了
學了"參考"的意義與用法,第 2 題就知道為什麼了
學了變數型態的長度、位數,第 3,4,5 題就知道為什麼了
要不然你學 Java 是學了什麼?
不好意思,因為這是老師的回家測驗,我才剛學2個禮拜,很多指令都還不知道,所以才想來這邊請教一下,對不起我是初學者
你不是說你知道結果了?
那何不說說你的結果是甚麼?而你又哪裡不懂?
只有PO出題目,看起來很像只是想叫人幫你做作業而已
剛剛按照大大建議研究了一下講義,知道為什麼了,這是線上測驗,我就算不知道為什麼還是可以繳卷,只是想知道為什麼會錯誤,做作業我會靠自己,請你不要隨便評論我
初學者也不必說對不起,每個人都曾是初學者過來的啊!
你不知道,只是你還不熟,學程式語言無他,就是熟到像吃飯喝水那樣不必思考就能直覺地知道,遇到什麼問題應該用什麼解,如此而已。
學習就是要虛心接受指教.別認為別人給意見是應該的.
重點是自己學到了什麼技術與觀念.
我沒有評論你,我只是說你給人家的感覺,我說的是【看起來很像是要怎樣】,因為這種情況在網路上太多太多。
問問題有其方法,如果你是真的想要學習,有更好的問問題方法,你才能得到你想學習的東西
以你的問題來說,你並沒有提到你哪裡不懂,一下子丟了這麼多題目上來直接要人解說,也得看看有沒有佛心的人願意長篇大論的寫一堆來告訴你,而長篇大論可能還不見得切中你到底哪裡不懂的核心
不過有很多高手看到這樣子的問問題方式,是會直接跳過的
esyc提到:
是會直接跳過的
嗯嗯,對不起我剛跳過了,現在趕緊回頭來看esyc大的佛心之論....
是說esyc大這麼長篇大論的寫一堆,不知有沒有切中人家的情緒核心....
我有答案知道結果了,但是我想知道為什麼會這樣
看來樓主只知道要打字
學習過程中該聽進去的沒啥理解
就很像我以前上課的同學
老師的操作練習題 打的都很順利
但是稍微換個題目或者是換個數值
就一堆問題發生
最後追蹤出來就是
老師剛講的沒聽進去
剛好在想其他事情
iT邦幫忙MVPwiseguy提到:
但是稍微換個題目或者是換個數值
就一堆問題發生
我也是耶~~~
所以我到現在還是不會~~
ted99tw提到:
是說esyc大這麼長篇大論的寫一堆,不知有沒有切中人家的情緒核心....
晚點看看我有沒有被罵就知到了...
esyc提到:
晚點看看
他如果會再出現
我請你吃美味蟹堡
海綿寶寶真是粉久揍~~~
第一題考你對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次方
}
去跑跑看
自己看結果
可以把範圍小的值指定給大的
可是不能把大的值指定給小的
後面也都是大概差不多的概念