JavaSE基础学习Day02

01-标识符

  • 介绍 : 给, 方法, 变量...起名字的符号

    • 简单记 : 自己起的名字都是标识符

  • 命名规则:

    • 数字 0 ~ 9

    • 字母 a ~ z A~Z

    • _ $

    • 不能以数字开头

    • 不能是Java中的关键字

    • 严格区分大小写

  • 命名规范 (江湖规矩) :

    • 小驼峰命名法 : 变量

    如果是一个单词, 所有字母小写  age  name
    如果是多个单词, 从第二个单词开始, 首字母大写  maxAge  firstName
    • 大驼峰命名法 : 类

    如果是一个单词, 首字母大写  Student 
    如果是多个单词, 每个单词首字母大写  GoodStudent OperatorDemo ScannerTest

02-数据类型

  • 基本数据类型

整数 :
        byte        1个字节        -128~127
        short       2个字节
        int         4个字节
        long        8个字节
​
小数 :
        float       4个字节
        double      8个字节
​
字符 :
        char        2个字节
​
布尔 : 
        boolean     1个字节

使用选择 :

1. 整数类型 : 首先int, 发现int装不下了, 换成long类型, 定义long类型变量需要加入 L 标识
​
2. 小数类型 : 首选double, 非要用float类型, 需要加入F标识

细节 :

所有整数默认都是 int 
    
    System.out.println(10);
​
所有小数默认都是 double
    
    System.out.println(12.3);
​
char 类型的取值范围是 0 ~ 65535
    
    在计算机中存储 'a' ---> 字节 ---> 二进制 ---> 01100001 ---> 97
    结论: 字符在底层都有一份数值的表示形式
        
    char c = 97;
    System.out.println(c);      // a

  • 引用数据类型

    • 字符串 : String

public class DataTypeTest1 {
    /*
        需求: 请将自己的个人信息, 定义出变量, 并展示在控制台
                (姓名, 年龄, 身高, 性别, 婚姻状况)
​
                姓名 : 字符串 --> String
                年龄 : 整数 --> int
                身高 : 小数 --> double
                性别 : 字符 --> char
                婚姻状况 : 布尔 --> boolean
     */
    public static void main(String[] args) {
​
        // 数据类型 变量名 = 数据值;
        String name = "张三";
        int age = 23;
        double height = 180.1;
        char gender = '男';
        boolean flag = false;
​
        System.out.println(name);
        System.out.println(age);
        System.out.println(height);
        System.out.println(gender);
        System.out.println(flag);
​
    }
}

03-Scanner键盘录入 (必掌握)

  • 三个步骤

    • 找符咒

    • 召唤精灵

    • 指挥精灵干活

1. 找符咒
    代码: import java.util.Scanner;
    位置: 必须写在class的上面
2. 召唤精灵
    代码: Scanner sc = new Scanner(System.in);
    涵义: 将符咒中的精灵召唤出来
    位置: main方法里面
3. 指挥精灵干活
    代码:
    int age = sc.nextInt();     从键盘录入整数
    String name = sc.next();    从键盘录入字符串
​
------------------------------------------------------
    double height = sc.nextDouble();      从键盘接收小数
    boolean flag = sc.nextBoolean();      从键盘接收布尔类型

04-算数运算符

  • 分类

+
-
*
--------------------------------------
/ : 整数相除, 结果只能得到整数, 如果想要带有小数的结果,需要有小数参与运算
% : 取模, 得到的是除法之后, 剩下的余数


import java.util.Scanner;

public class OperatorTest1 {
    /*
        需求: 键盘录入一个三位数, 将其拆分出个位, 十位, 百位, 打印在控制台

                个位:  数值 % 10;
                十位:  数值 / 10 % 10;
                百位:  数值 / 10 / 10 % 10;
                千位:  数值 / 10 / 10 / 10 % 10;
                万位:  数值 / 10 / 10 / 10 / 10 % 10;
                ...

                简化算法: 针对于数值的最高位, 可以做简化

                            123 / 100 ---> 1
                            4567 / 1000 ---> 4
                            45678 / 10000 ---> 4
     */
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数: ");
        int num = sc.nextInt();

        int ge = num % 10;
        int shi = num / 10 % 10;
        int bai = num / 100;

        System.out.println("整数" + num + "的个位为:" + ge);
        System.out.println("整数" + num + "的十位为:" + shi);
        System.out.println("整数" + num + "的百位为:" + bai);

    }
}

05-字符串拼接操作

  • 当 + 号操作过程中, 遇到了双引号字符串, + 号就是字符串连接符, 而不是算数运算了

System.out.println("it" + 666);		// it666

需求: 定义两个变量, 记录3和4, 要求控制台打印的结果是  3 + 4 = 7
int a = 3;
int b = 4;
System.out.println(a + "+" + b + "=" + (a + b));

06-自增自减运算符

  • 符号 : ++ , --

++ : 让变量自身的值 +1
-- : 让变量自身的值 -1
  • 使用

1. 单独使用 (推荐)

		int a = 10;
		a++;
		++a;
		
		++在前, 在后没有任何区别.

2. 参与运算使用 (面试喜欢问)

	++在前 : 先自增, 再操作
		
		
		int a = 10;
				int b = ++a;			// a = 11, b = 11
				System.out.println(a);	// 11
                System.out.println(b);	// 11
                
	++在后 : 先操作, 再自增
		
				int a = 10;
				int b = a++;			// b = 10, a = 11
				System.out.println(a);	// 11
                System.out.println(b);	// 10
public class OperatorTest2 {
    /*
        不用自己写, 看程序说结果
     */
    public static void main(String[] args) {
        int a = 10;
        int b = ++a;
        int c = b++;

        System.out.println("a=" + a);
        System.out.println("b=" + b);
        System.out.println("c=" + c);

        System.out.println("------------------------");

        int x = 3;
        int y = (++x) + (x++) + (x * 10);
        System.out.println("x=" + x);
        System.out.println("y=" + y);
    }
}
  • 注意事项 :

    • 自增自减运算符, 只能操作变量, 不能操作常量

07-赋值运算符

  • 基本赋值运算符

= : 将符号右边的数据, 赋值给左侧的变量

int a = 10;
  • 扩展赋值运算符

+= : 将符号左右两边的数据, 做加法运算, 将结果赋值给左边

		int a = 10;
		a += 20;
		System.out.pritnln(a);		// 30
		
-= :
*= :
/= :
%= :
  • 注意事项 : 扩展赋值运算符, 自带强转效果

double a = 12.3;
int b = 10;

b += a;		

System.out.println(b);		// 22

08-关系运算符

  • 小名 : 比较运算符

>
<
>=
<=
==
!=
  • 结论 : 让数据之间作比较, 返回true, false的结果

  • 注意 : 不要把 = 号误写成 ==

09-逻辑运算符

  • 代码层面 : 连接boolean类型的表达式或者是值

  • 理解层面 : 整合多个条件, 为一段整体的逻辑

if(score >= 90 && score <= 100){
}
  • 分类 :

&(与) : 并且, 遇false则false
|(或) : 或者, 遇true则true
!(非) : 取反
^(异或) : 相同为false, 不同为true

10-短路逻辑运算符

& : 没有短路效果, 无论符号左边是true,false, 右边都要继续执行
&& : 具有短路效果, 当符号左边为false的时候, 右边就不执行了
 		如果左边为true, 右边要继续执行

| : 没有短路效果, 无论符号左边是true,false, 右边都要继续执行
|| : 具有短路效果, 当符号左边为true的时候, 右边不执行了
		如果左边为false, 右边要继续执行

结论: 今后常用的逻辑运算符

		&& || !

11-三元运算符

  • 三目运算符

  • 效果 : 根据一个判断条件, 从两个数据值, 二者选其一

  • 格式 : 判断条件 ? 值1 : 值2;

1. 执行判断条件, 看其返回结果是true, false

2. true : 值1就是最终结果

3. false : 值2就是最终结果

-------------------------------------------------------

int a = 10;
int b = 20;

int max = a > b ? a : b;

import java.util.Scanner;

public class OperatorTest3 {
    /*
        需求: 键盘录入3个整数, 求出最大值, 最小值, 中间值
                按照从小到大的顺序, 依次打印

                中间值 : num1 + num2 + num3 - max - min;
     */
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入三个整数 :");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        int num3 = sc.nextInt();

        // 1. 求三个整数的最大值
        int tempMax = num1 > num2 ? num1 : num2;
        int max = tempMax > num3 ? tempMax : num3;

        // 2. 求三个整数的最小值
        int tempMin = num1 < num2 ? num1 : num2;
        int min = tempMin < num3 ? tempMin : num3;

        // 3. 求中间值
        int mid = num1 + num2 + num3 - max - min;

        System.out.println("最小值为:" + min);
        System.out.println("中间值为:" + mid);
        System.out.println("最大值为:" + max);

    }
}

12-运算符的优先级

  • 熟练掌握 () 的使用

  • 常识概念 : && 的优先级是 大于 ||

13-流程控制语句

  • 介绍 : 通过一些语句, 来控制程序的执行流程

  • 分类 :

    • 顺序结构

      • Java 程序默认的执行流程, 没有特定的语法

    • 分支结构

      • if

      • switch

    • 循环结构

      • for

      • while

      • do...while

14-if语句

  • 格式1 :

if (判断条件) {
	语句体;
}

执行流程 :
		1. 执行判断条件, 看其返回结果是true,false
		2. true : 执行 {} 中的语句体
		3. false : 不执行 {} 中的语句体

注意事项 :
		1. if语句 () 和 {} 之间不要写分号
		2. if语句 {} 中, 如果只有一条语句,  {} 可以省略不写, 不建议省略
		3. if语句 () 中, 无论简单还是复杂, 只要是boolean类型的数据, 就符合语法要求
  • 格式2 :

if (判断条件) {
	语句体1;
} else {
	语句体2;
}

执行流程:
		1. 执行判断条件, 看其返回结果是true, false
		2. true : 执行语句体1
		3. false : 执行语句体2
public class IfTest1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的密码:");
        int password = sc.nextInt();

        if (password == 111111) {
            System.out.println("密码正确");
        } else {
            System.out.println("密码错误");
        }
    }
}
  • 格式3 :

if (判断条件1) {
	语句体1;
} else if(判断条件2) {
	语句体2;
} else if(判断条件3) {
	语句体3;
}
...
else {
	语句体n+1;
}

执行流程:
		1. 执行判断条件1, 看其返回结果是true, false
				true : 执行语句体1, 然后结束掉整个的if语句
				false : 执行第二步
		2. 执行判断条件2, 看其返回结果是true, false
				true : 执行语句体2, 然后结束掉整个的if语句
				false : ...
		3. 如果所有的判断条件都不成立, 将会执行最后的else
import java.util.Scanner;

public class IfTest2 {
    /*
        需求:键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制

        95 ~ 100 : 自行车一辆
        90 ~ 94 : 游乐场玩一次
        80 ~ 89 : 变形金刚一个
        80 以下 : 挨揍

        健壮性判断 : 考虑到一些边界值
     */
    public static void main(String[] args) {
        // 1. 键盘录入学生成绩
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的成绩:");
        int score = sc.nextInt();

        // 2. 加入if判断, 看成绩在哪一段范围
        if (score < 0 || score > 100) {
            System.out.println("您的成绩输入有误!");
        } else if (score >= 95 && score <= 100) {
            System.out.println("自行车一辆");
        } else if (score >= 90 && score <= 94) {
            System.out.println("游乐场玩一次");
        } else if (score >= 80 && score <= 89) {
            System.out.println("变形金刚一个");
        } else {
            System.out.println("挨揍");
        }
    }
}
import java.util.Scanner;

public class IfTest3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的成绩:");
        int score = sc.nextInt();

        if (score >= 0 && score <= 100) {
            // 成绩是正确的
            // 代码进入到这个大括号, 说明成绩肯定是0~100之间, 只需要关心, 给什么奖励即可
            if (score >= 95 && score <= 100) {
                System.out.println("自行车一辆");
            } else if (score >= 90 && score <= 94) {
                System.out.println("游乐场玩一次");
            } else if (score >= 80 && score <= 89) {
                System.out.println("变形金刚一个");
            } else {
                System.out.println("挨揍");
            }

        } else {
            System.out.println("您的成绩输入有误, 请检查是否是0~100分之间");
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值