一、Java基础语法

目录

1.注释和控制台输出语句

2.java数据类型

3.变量的使用

4.基本数据类型之间的转换

4.java运算符

5.方法定义与调用

6.流程控制语句


1.注释和控制台输出语句

/**
 * 文档注释
 * 会被java Doc文档工具作为文档内容显示
 * 一般为类、类的成员变量和成员方法的声明
 */
public class HelloWorld {
    //单行注释
    /*
        多行注释
        多行注释
        多行注释
     */
    public static void main(String[] args) {//主方法

        System.out.println("Hello World!!!");//控制台打印输出语句
        
    }
}

//注:其中 public、static、class、void均为关键字,而class后面的 HelloWorld为标识符
/*
    标识符:用户自定义的类名、变量名、接口名、方法名
    关键字:java语言中已经被赋予特定意义的单词
*/

2.java数据类型

(1)基本数据类型:

 其中需要注意的是:

①java中char类型是可以允许一个中文字符的。

②整型默认为int,要用long类型需在其后加上L;浮点型可能为默认为double,要用float类型则要在其后加上F。

③浮点型可能为近似值。

(2)引用数据类型:字符串、数组、类、接口、Lambda表达式(放在之后详细学习)

        System.out.println(123);//默认为int类型
        System.out.println(123L);//转换为long类
        System.out.println(23.44);// 默认为double类型
        System.out.println(23.44F);//转换为float类型
        System.out.println('A');//字符char类型
        System.out.println('中');//可以输入一个中文字符
        System.out.println(true+" "+false);//boolean类型

3.变量的使用

(1)变量命名不能使用关键字,使用驼峰命名法。

(2)变量命名必须以数字、字母、下划线和$组成。

(3)必须在变量的有效范围内使用变量,超出则无效。(有效范围:变量在内存中被创建到被清除之间的过程,从代码上看即离变量最近的两个大括号之间的部分)

(4)变量在使用之前必须赋值。

(5)对long类型和float类型,赋值时加上L或F。

        {
            char c_$char;//定义一个变量

            //System.out.println(c_$char);//此处会报错
            // 使用之前必须先赋值,否则报错
            c_$char = '中';//赋值
            System.out.println(c_$char);
            
            //赋值时加上L后缀
            long num = 12345L;
        }
        //System.out.println(c-$char);//报错,因为超出了适用范围

4.基本数据类型之间的转换

(1)自动类型转换(数据范围从小转到大)

            int num1 = 123;//整型
            double num2 = num1;//转为范围更大的浮点型
            System.out.println(num2);

            
            结果为:123.0

(2)强制类型转换(数据范围从大到小)

            float num3 = 1244.55F;//定义浮点型
            int num4 = (int)num3;//转换为整型,会损失精度
            System.out.println(num4);


            结果为:1244

注:

①有可能发生精度损失、数据溢出,因此不推荐使用。

②byte/short/char三种类型发生数学运算时首先会转化为int类型再计算

4.java运算符

(1)算术运算符:加减乘除、取模、自增自减

            /*
                加减乘除以及模(余数)
             */
            int num5 = 12;
            int num6 = 5;
            System.out.println(num5 + num6);//加法
            System.out.println(num5 - num6);//减法
            System.out.println(num5 * num6);//乘法
            System.out.println(num5 / num6);//除法
            System.out.println(num5 % num6);//求模(余数)
            System.out.println(++num5);//自加
            System.out.println(--num6);//自减

            结果为:
            17
            7
            60
            2
            2
            13
            4
            

注:

①算术运算的结果类型与数据范围大的运算数类型相同。

            System.out.println(12+12.4/2);//此时第一个入栈的是12.4,为浮点型,范围最大

            结果为:18.2

②加号还有一个特殊用途就是连接字符串。

            /*
                加号的特殊用途:连接字符串(任何数据类型与字符串相加都是字符串)
             */
            System.out.println("2345"+50);//字符串与整型相加


            结果为:234550

③在混合语句中:++i与i++的区别

++i先加1再执行混合语句,i++先执行混合语句再加1。

            int num7 = 10;
            System.out.println(num7);//初始num7的值
            System.out.println(num7++);//后加加:先打印再加1
            System.out.println(num7);//后加加后的值
            System.out.println(++num7);//前加加:先加1再打印
            System.out.println(num7);//前加加后的值


            结果为:
            10
            10
            11
            12
            12

(2)赋值运算符:

            int num8;
            num8 = 12;//=赋值
            System.out.println(num8);
            num8 += 2;//与num8= num8 + 2完全一致
            System.out.println(num8);
            num8 -= 10;//num8自减10
            System.out.println(num8);
            num8 *= 2;//自乘2
            System.out.println(num8);
            num8 /= 2;//自除2
            System.out.println(num8);
            
            //num8 = num8 % 5;
            num8 %= 5;//自模2
            System.out.println(num8);


            结果:
            12
            14
            4
            8        
            4
            4

(3)比较运算符:比较结果为boolean类型

            //比较运算符:==、!=、<、>、<=、>=
            System.out.println(3==5);
            System.out.println(3<5);
            System.out.println(3>5);
            System.out.println(3!=5);
            System.out.println(3>=5);
            System.out.println(3<=5);


            结果为:
            false
            true
            false
            true
            false
            true

(4)逻辑运算符

            //短路与:&&(所有结果都为true)
            //短路或:||(至少有一个结果为true)
            //非:!(取反)

            // & 和 | 不具有短路效果,因为必定要遍历所有条件,所以一般不常用

            System.out.println(3>2&&3>1);
            System.out.println(3>2&&3<1);
            System.out.println(3>2||3<1);
            System.out.println(!(3>2));
                
            true
            false
            true
            false

(5)三元运算符:二者选其一

            //三目运算符:数据类型 变量名称 = 条件判断 ? 表达式1 : 表达式2
            //表达式1:结果为true时使用
            //表达式2:结果为false时使用
            int a = 3 > 2 ? 4 : 5;
            System.out.println(a);

            结果为:4

5.方法定义与调用

方法即为若干语句的功能集合,在这里可以把定义方法理解成制定计划,但是制定的计划并不能自己执行,需要一个主体来调用它并执行。

(1)方法的定义格式:

(2)一个简单的方法调用

public class Demo1 {

    //主方法:程序运行的入口
    public static void main(String[] args){
        //调用:执行我的日程安排
        int day =  me(3);//给定参数为3,用一个int变量接收返回值
        me(3);//也可以直接调用,但此时没有去接受返回值
        System.out.println(day);
    };

    //定义一个方法:我一天的日程安排
    public static int me(int day){
        System.out.println("------第" + day + "天-----");
        System.out.println("起床。。。");
        System.out.println("洗漱。。。");
        System.out.println("吃饭。。。");
        System.out.println("学习。。。");
        System.out.println("写博客。。。");
        System.out.println("打游戏。。。");
        System.out.println("睡觉。。。");
        return day;
    }
}

执行结果:

------第3天-----
起床。。。
洗漱。。。
吃饭。。。
学习。。。
写博客。。。
打游戏。。。
睡觉。。。
3

 (3)方法的重载:同一个类中的多个方法可以有相同的方法名称,但是有不同的参数列表。

    //两个数相加
    public int addTwo(int a, int b) {
        return a + b;
    }
    //三个数相加
    public int addThree(int a, int b, int c) {
        return a + b + c;
    }
    //四个数相加
    public int addFour(int a, int b, int c, int d) {
        return a + b + c + d;
    }

对同一类型的方法,如两个数相加,三个数相加,四个数相加,我们分别给他们定义一个方法,在调用时我们要分别记住他们的方法名,若是有更多的数相加,则要记住更多的方法名,这样对使用者来说很不方便,因此我们引入方法重载。

    public int add(int a, int b) {
        return a + b;
    }

    public int add(int a, int b, int c) {
        return a + b + c;
    }

    public int add(int a, int b, int c, int d) {
        return a + b + c + d;
    }

 我们把相同类型的方法统一成一个方法,只需改变它的参数、方法体和返回值,而方法名必须相同。这样就完成了方法重载,调用时只需要给定对应的参数并接受相应的返回值即可。

        int result1 = demo1.add(2,3);
        int result2 = demo1.add(2,3,4);
        int result3 = demo1.add(2,3,4,5);
        System.out.println(result1);
        System.out.println(result2);
        System.out.println(result3);

        结果:
        
        5
        9
        14

6.流程控制语句

(1)选择结构

①if-else语句

public class Demo1 {

    public static void main(String[] args){
        //此处实例化一个输入对象,使用户能够传值给系统
        Scanner scanner = new Scanner(System.in);

        int a;
        a = scanner.nextInt();
        
        //判断分数区间
       if(a==100){
           System.out.println("满分");
       }else if(a < 100 && a >= 80){
           System.out.println("优秀");
       }
       else if(a < 80 && a >= 60){
           System.out.println("及格");
       }else{
           System.out.println("不及格");
       }
    };
}


输入:69
结果:及格

②switch-case语句(只能用于关键字等值判断的选择结构)

public class Demo2 {

    public static void main(String[] args){
        Random random = new Random();//实例化伪随机数类

        //此处我们给定一个0-6的伪随机数
        int a = random.nextInt(7);
        System.out.println(a);

        //条件判断
        switch (a){//此处a的数据类型只能为byte、short、int、char以及String以及枚举类
            case 0:
                System.out.println("星期一");
                //break在这里起了地板作用
                //如果一栋楼每层之间没有地板,那么就会从最顶层一直朝下跌落
                //如果没有break程序就会继续往下执行
                break;
            case 1:
                System.out.println("星期二");
                break;
            case 2:
                System.out.println("星期三");
                break;
            case 3:
                System.out.println("星期四");
                break;
            case 4:
                System.out.println("星期五");
                break;
            case 5:
                System.out.println("星期六");
                break;
            case 6:
                System.out.println("星期日");
                break;
            default:break;//当不是上面所列的值时执行
        }
    }
}

结果:
2
星期三

 注:break不能省略,switch关键字数据类型只能为byte、short、int、char、String以及枚举类

上述代码省略第一个break后,若 a = 0 时结果为

0
星期一
星期二

(2)循环结构

①while循环结构:多用于不清楚具体的循环次数时

public class Demo3 {

    public static void main(String[] args){
        int a = 1;

        //循环控制语句
        while(a <= 10){
            System.out.println("第" + a + "次循环");
            a++;
        }
    }
}


结果为:

第1次循环
第2次循环
第3次循环
第4次循环
第5次循环
第6次循环
第7次循环
第8次循环
第9次循环
第10次循环

②do-while循环结构:无论是否符合条件,均至少会执行一次循环

public class Demo4 {

    public static void main(String[] args){

        int a = 13;//此时a已经超出循环条件范围,但do仍先会执行一次循环

        do{
            System.out.println("第" + a + "次循环");
            a++;
        }while(a<=10);
    }
}

结果:

第13次循环

③for循环:清楚具体的循环次数,多用于数组的遍历与查找

public class Demo5 {

    public static void main(String[] args){

        int a[] = {1,2,3,4,5,};//此处定义一个数组

        for(int i = 0 ;i < a.length;i++){//length为数组长度
            System.out.println(a[i]);
        }

    }
}

结果:

1
2
3
4
5

也可用增强for循环,得到的结果是相同的。

        for(int b : a){
            System.out.println(b);
        }

(3)break与continue关键字:通常与循环结构结合,控制循环结构

break:立刻结束整个循环。

continue:立刻跳过该次循环剩余部分。

public class Demo6 {

    public static void main(String[] args){

        int a = 0;

        while(true){//为true时无限循环,可在循环体里面用条件控制
            a++;
            System.out.print("第" + a + "次循环");
            if(a == 10){
                break;//当a为10时终止循环
            }
            if(a == 5){
                System.out.println();
                continue;//当a为5时跳过该循环
            }
            System.out.print("没有被跳过");
            System.out.println();
        }
    }
}


结果为:

第1次循环没有被跳过
第2次循环没有被跳过
第3次循环没有被跳过
第4次循环没有被跳过
第5次循环
第6次循环没有被跳过
第7次循环没有被跳过
第8次循环没有被跳过
第9次循环没有被跳过
第10次循环

其中第五次被continue跳过,第10次直接结束,没有输出后面的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值