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?

猜你喜欢

转载自blog.csdn.net/qq_41584674/article/details/81434125