1. 程式人生 > >java第二天

java第二天

鍵盤錄入:

import java.util.Scanner;
class Input{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個整數");
        int x = sc.nextInt();
        System.out.println(x);
    }
}

java選擇語句中表達式的結果必須是布林型別,也就是隻能是true、false。
if語句控制的語句體如果是一條語句,大括號可以省略;(最好不要省略)
通過if語句給未賦值變數時:

class IfTest{
    public static void main(String[] args){
        int x = 3;
        int y;
        if(x==3){
            y = x;}
        else{y = 0;}
        }
        System.out.println(y)
}
//執行正確
class IfTest{
    public static void main(String[] args){
        int x = 3;
        int y;
        if
( x==3 ){ y = x;} else if (x != 3){ y = 0;} } System.out.println(y)//可能尚未賦值的y } //執行錯誤
class IfTest{
    public static void main(String[] args){
        int x = 3;
        int y;
        if( x==3 ){
            y = x;}
        else {
            x++;}
        }
        System.out
.println(y)//可能尚未賦值的y } //執行錯誤

switch語句後面是條件表示式,可以支援各種型別
case後面只能是常量不能是變數。
default語句可以省略,也可以放在任意位置,但都是最後執行
break省略會導致case語句穿透情形

int x = 3;
int y = 4;
switch(x){
    default:
        y++;
    case 3:
        y++;
    case 4:
        y++;
    }
System.out.println(y)//6

迴圈識別符號:

a:for(int i=1;i<10;i++){
    b:for(int j=1;j<i;j++){

        System.out.print("*");
        break a;}//退出a迴圈
    System.out.println();
    }

陣列預設初始化值:
整數型別:byte,short,int,long預設初始值都是0
浮點型別:float,double預設初始值都是0.0
布林型別:boolean預設初始值false。
字元型別:char預設初始值為’\u0000’。
記憶體:
棧:儲存區域性變數(先進後出)
堆:儲存new出來的陣列或物件
靜態陣列:
1、資料型別[ ]陣列名 = new 資料型別[ ]{元素1,元素2,元素3,…}
2、資料型別[ ]陣列名 = {元素1,元素2,元素3,…}
如下

int[] arr1 = new int[5]{1,2,3};//報錯,不允許動靜結合
int[] arr1 = new int[]{1,2,3};
int[] arr2 = {1,2,3};

對於第二種方法不能先宣告再賦值

int[] arr3;
arr3 = new int[]{1,2,3};//正確
int[] arr2;
arr2 = {1,2,3};//報錯

二維陣列:
第一種賦值方式

int[][] a = new int[3][2];
System.out.println(a);//a的地址
System.out.println(a[1]);//a[1]的地址

第二種賦值方式

int[][] a = new int[3][];
a[0] = new int[3];
a[1] = new int[5];
System.out.println(a);//a的地址
System.out.println(a[1]);//a[1]的地址
System.out.println(a[2]);//預設值null

第三種賦值方式

int [][] arr = {{1,2},{2,31,42},{1}}

基本資料型別的值傳遞,不改變原值
引用資料型別(例如陣列),改變原值,傳遞的是地址。
java到底是傳值還是傳址,答案傳值,這是高司令(java之父說的)wtf?