使用IDEA学JAVA第二天

今天是寒假学JAVA第二天,主要学习了JAVA数据类型、运算符、流程控制语句。

1、数据类型

1.1数据类型的分类:基本数据类型、引用数据类型

  • 基本数据类型:8种
  • 整型:byte、short、int、long(8个字节,但是如果数据的长度较小的话【正负21亿范围内】,long类型占4个字节,当数据大于正负21亿时,自动转为8字节。)
  • 浮点类型:float、double
  • 布尔类型:boolean
  • 字符类型:char
  • 引用数据类型:数组、类、枚举、接口…
  • 类型转换

从小到大:自动转换
从大到小:强制类型转换【可能会丢失精度】

2、常用的运算符

  • 算数运算符:加、减、乘、除、取余
  • 字符串连接符:+
    当+的任意一边有字符串时,做连接操作
  • 关系运算符:大于(>)、小于(<)、等于、大于等于(>=)、小于等于(<=)、不等于(!=),结果都为布尔类型
  • 赋值运算符:=
  • 逻辑运算符:与(&&)、或(||)、非(!)
    逻辑与:当且仅当&&两边都为真时,结果才为真;
    逻辑或:任意一边为真时,结果都为真;
    非:当表达式为真时,结果为假,表达式为假是,结果为真。
  • 逻辑运算符 与、或的短路特性
    逻辑与运算符:当&&前面的表达式为假时,后面不做判断;
    逻辑或运算符:当||前面的表达式为真时,后面不做判断
  • 自增减运算符:加加、减减
    加加分为前++和后++
    减减分为前和后
  • 三目运算符:条件表达式?表达式1:表达式2
    若条件表达式为真=>执行表达式1
    若条件表达式为假=>执行表达式2
  • 练习:1.提示用户输入一个三位数的正数,然后进行逆序处理再打印。
    如:
    123->321 打印
    使用三运算判断用户输入的数负数、正数还是零。
    代码如下:
public class Demo02 {
    public static void main(String[] args) {
        //提示用户输入一个三位数的正数,并逆序处理再打印
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int a = sc.nextInt();
        System.out.print(a%10);
        System.out.print((a%100)/10);
        System.out.print(a/100);
    }
}

运行结果截图:
在这里插入图片描述

3、流程控制

1、流程控制语句

在java中,任何复杂逻辑,都可以使用顺序、分支、循环三种结构进行描述。
三种结构的流程图

1.1分支结构

  • if分支
    语法格式:
    if(条件表达式)(
    语句块
    执行流程:
    若条件表达式成立,则执行语句块;
    若条件表达式不成立,则执行语句块后面的代码。
    案例:提示用户输入年龄,判断年龄是否大于18岁!
    练习:使用if分支结构,提示用户输入两个数,求最大值!if-else分支
    语法格式:
    if(条件表达式)(
    语句块1;
    }else(
    语句块2;
    执行流程:
    若条件表达式成立,执行语句块1;
    若条件表达式不成立,执行语句块2;
    案例:提示用户输入成绩,判断是否及格!
  • 练习:使用if-else分支结构,提示用户输入一个整数,判断是负数,还是非负数;if-else-if-else分支
    语法格式:
    if(条件表达式1)(
    语句块1;
    )else if(条件表达式2)(
    语句块2;
    )else if(条件表达式n){
    语句块n;
    执行流程:
    若条件表达式1成立,执行语句块1;
    若条件表达式2成立,执行语句块2;
    若条件表达式n成立,执行语句块n;
  • 练习:提示用户输入高考成绩,判断学校学历;
    650以上:
    550-650:
    450-550:
    350-450:
    350以下:
public class IfElseDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的高考成绩:");
        int grade = sc.nextInt();
        //对学生成绩进行判断
        if (grade >= 650) {
            System.out.println("可以报考清华北大!");
        } else if (grade >= 550) {
            System.out.println("可以报考985211!");
        } else if (grade >= 450) {
            System.out.println("可以报考一本!");
        } else if (grade >= 350) {
            System.out.println("可以报考二本!");
        } else {
            System.out.println("去补习吧!");
        }
    }
}
  • switch-case分支
    switch case 语句用来判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
    switch语句的原则:
    switch语句中的变量类型可以是:byte、short、int或者char。从Java7开始,switch支持字符串 String类型了,同时case标签必须为字符串常量或字面量,
    switch语句可以拥有多个case语句。每个case后面跟一个要比较的值和置号。
    case语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。当变量的值与case 语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch 语句。当遇到 break语句时,switch 语句终止。
    程序跳转到switch语句后面的语句执行。case语句不必须要包含break语句。
    如果没有break 语句出现,程序会继续执行下一条case语句,直到出现break语句。
    switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一↑).
    default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
    switch case执行时,一定会先进行匹配,匹配成功返回当前case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
  • 语法格式:
    switch(表达式)(
    case 1:语句块1
    break; //可选
    case 2:语句块2
    break;
    case n:语句块n
    break;
    default 语句块
  • 执行流程:
    若表达式满足case 1执行case1中的语句块;若表达式满足case 2 执行case 2中的语句块若表达式满足case n 执行case n中的语句块
    都不满足,执行default中的语句块
    案例:提示用户输入业绩排名,判断去哪儿玩儿
    1、欧洲游 2、亚洲游3、国内游4、省内游
public class SwitchCaseDemo {
    public static void main(String[] args) {
        //
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的业绩名次:");
        int num = sc.nextInt();
        switch (num) {
            case 1:
                System.out.println("欧洲游");
                break;
            case 2:
                System.out.println("亚洲游");
                break;
            case 3:
                System.out.println("国内游");
                break;
            case 4:
                System.out.println("省内游");
                break;
            default:
                System.out.println("你游什么啊");
        }

    }
}

练习:提示用户输入月份,判断当月天数(不考虑闰年)

public class SwitchCaseDemo01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入月份:");
        int mouth = sc.nextInt();
        switch (mouth) {
            case 2:
                System.out.println("28天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("30天");
                break;
            default:
                System.out.println("31天");
        }
    }
}

1.2循环结构

  • for循环
    语法格式:
    for(初始表达式;条件表达式;修改初始表达式)(
    循环体;
  • 执行流程:
    初始表达式=>条件表达式【若成立】=>循环体;=>修改初始表达式=>条件表达式=>若成立。。。。
    若不成立=>跳出循环体;
    break和continue
    break:表示结束当前语句块,在循环中表示结束当前循环体;
    continue:在循环中表示跳出当前循环体,继续执行下一次循环;
  • while循环
    语法格式:
    初始表达式;
    while(条件表达式)(
    循环体;
    修改初始表达式;
    执行流程:
    初始表达式=>条件表达式=>若成立=>执行循环体=>修改初始表达式=>条件表达式=>。。。。
    若不成立=>不进入循环体,执行后边的代码
    作业:跑圈跑完一圈提示用户是否还能跑,如果不能则结束
public class Run {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int i = 1;
        while(true) {
            System.out.println("你已经跑了第" + i +"圈了,是否继续?");
            String str = sc.next();
            if("否".equals(str)) {
                System.out.println("不行了,跑不动了!");
                break;
            } else if ("是".equals(str)) {
                System.out.println("接着跑");
                i++;
            }
        }
    }
}

  • do-while循环
    语法格式:
    初始表达式;
    do{
    循环体;
    修改初始表达式
    )while(条件表达式);
  • 执行流程:
    案例:打印1-100之间的数字
    双重for循环
    语法格式:
    for(初始表达式1;条件表达式2;修改初始表达式3)(
    for(初始表达式4;条件表达式5;修改初始表达式6)(
    循环体;
    执行流程:
    初始表达式1=>条件表达式2=>若成立=>初始表达式4=>条件表达式5=>循环体=>修改初始表达式6=>条件表达式5=>若成立=>循环体=>修改初始表达式6=>条件表达式=>循环体.……=>不成立=>修改初始表达式3
    =>条件表达式2=>初始表达式4…=>直到条件表达还是2不成立=>跳出循环体
    若不成立=>修改表达式3=>条件表达式2=>成立【不成立】
    若不成立=>跳出循环体,执行后面的代码
  • 注意事项:
    1.外层循环用来控制行数,内层循环用于控制列数:
    2.外层循环的变量改动一次,内层循环需要从头到尾执行一遍:(外层循环执行一次,内层循环需要跑一圈)
    今后开发中,如果遇到几行几列时,使用双重循环,循环的嵌套不直超过3层。
    练习:打印九九乘法表
public class DoubleForDemo {
    public static void main(String [] args){
        for(int i = 1;i <= 9; i++){
            for(int j = 1;j<=i;j++){
                System.out.print(i +"*"+j + "=" + i*j +" ");
            }
            System.out.println();
        }
    }
}

总结:今天是第三天,由于昨天内容较多,所以今天才发,内容质量较昨天有了较大提升,继续加油!!!

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微笑向阳~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值