前幾天在知乎裡看到一份這樣的題,當時只是隨便做了一下,對了一下答案。昨天又有了進階的題,裡面有些還是需要記錄一下,於是從這個入門的題目開始。
題目與答案來自阿里雲大學- 知乎專欄
#現在假設有以下程式
class Happy {public static void main(String args[]) {int i = 1 ; int j = i++ ;if((i==(++j))&&((i++)==j)) { i += j ; } System.out.println("i = "+i); } }
運行完上面程式碼之後輸出i
的值是多少?
A. 4
B. 5
C. 3
D. 6
float f = 1.3;
char c = "a"
byte b = 257
int i = 10
public class Demo {public static void main(String args[]) {boolean flag = 10%2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ; System.out.println(flag ? "aliyunedu" : "yootk") ; } }
A. aliyunedu
B. yootk
#C. true
D. 程式出錯
public class Demo {public static void main(String args[]) {int x = 10 ;double y = 20.2 ;long z = 10L; String str = "" + x + y * z ; System.out.println(str) ; } }
A. 10202.0
B. 0212.0
C. 302.0
D. 1020.210
public class Demo {public static void main(String args[]) { String str = "" ;for (int x = 0 ; x < 5 ; x ++) { str += x ; } System.out.println(str) ; } }
A. 01234
B. 10
#C. 14
D. 25
public class Demo {public static void main(String args[]) { System.out.println(inc(10) + inc(8) + inc(-10)) ; }public static int inc(int temp) {if (temp > 0) {return temp * 2 ; }return -1 ; } }
A. 35
B. 8
C. 28
D. 12
public class Demo {public static void main(String args[]) {char c = 'A' ;int num = 10 ;switch(c) {case 'B' : num ++ ;case 'A' : num ++ ;case 'Y' : num ++ ;break ;default : num -- ; } System.out.println(num) ; } }
A. 11
B. 13
C. 12
D. 10
##現在假設有以下程式:public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) { sum += x ;if (x % 3 == 0) {continue ; } } System.out.println(sum) ; } }
public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) { sum += x ;if (x % 3 == 0) {break ; } } System.out.println(sum) ; } }
++i的區別,只要記住“先++,先自增;後++,後自增”,這題就只剩下考驗細心了。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="sourceCode java">class Happy {public static void main(String[] args) {int i = 1;int j = i++; // i = 2, j = 1if ((i == (++j)) && ((i++) == j)) { // 第一个判断:j先自增1变为2后与i比较// 第二个判断:i先与j比较后再自增1,// if内为true,i = 3, j = 2i += j; // i = 5, j = 2}
System.out.println("i = " + i);
}
}</pre><div class="contentsignin">登入後複製</div></div>
1.3預設是double類型,java中基本資料型別由高階向低階轉換需要強轉。
#java中的字元常數應該用單引號括起來,雙引號括起來的為字串。 (最後少了個分號)
byte的範圍是 -128~127。 (最後少了個分號)
(最後少了個分號)
public class Demo {public static void main(String args[]) {boolean flag = 10 % 2 == 1 && 10 / 3 == 0 && 1 / 0 == 0 ;// 10对2取余为0,故flag为falseSystem.out.println(flag ? "aliyunedu" : "yootk") ; } }
X = 條件? A : B
為三元表達式,與<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="sourceCode java">if (条件) {
X = A;
} else {
X = B;
}</pre><div class="contentsignin">登入後複製</div></div>
public class Demo {public static void main(String args[]) {int x = 10 ;double y = 20.2 ;long z = 10L; String str = "" + x + y * z ; System.out.println(str) ; } }
+,故優先計算乘法,接著由左往右依序進行
+。當有字串參與
+運算時,加法變成字串拼接,結果為字串。故最後為字串
"10"和
202.0的拼接。
public class Demo {public static void main(String args[]) { System.out.println(inc(10) + inc(8) + inc(-10)) ; // 20 + 16 - 1}public static int inc(int temp) {if (temp > 0) {return temp * 2 ; }return -1 ; } }
public class Demo {public static void main(String args[]) {char c = 'A' ;int num = 10 ;switch(c) {case 'B' : num ++ ;case 'A' :// 匹配成功,开始执行num ++ ; // num = 11case 'Y' : num ++ ; // num = 12break ;// 因break跳出switchdefault : num -- ; } System.out.println(num) ; } }
public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 1 ; x < 10 ; x ++) { sum += x ;if (x % 3 == 0) {continue ; } } System.out.println(sum) ; } }
public class Demo {public static void main(String args[]) {int sum = 0 ;for (int x = 0 ; x < 10 ; x ++) { sum += x ;if (x % 3 == 0) {break ; } } System.out.println(sum) ; } }
和上一題類似,不過i的初始值變成了0,if裡面的continue變成了break。由於0對3取餘為0,所以直接跳出循環,輸出sum的值0。
#以上是分享一篇Java入門題的詳細內容。更多資訊請關注PHP中文網其他相關文章!