寒假实训 Day02

1、数据类型
    (1)、数据类型的分类:基本数据类型、引用数据类型
        基本数据类型:8种
        整型: byte、short、int、long (8个字节,但是如果数据的长度较小的话[正负21亿范图内],long类型占4个节,当数据大于正负21亿时,自动转为8字节。)
        浮点类型: float、double
        布尔类型: boolean
        字符类型: char
        引用数据类型:数组、类、枚举、接口...
    类型转换
        从小到大: 自动转换
        从大到小:强制类型转换[可能会丢失精度]
    练习
        (2)、思考题:
        设计一套陆码要求能称量出1 ” 100g之间的任只量,请问至少哥要多少个陆码?
        以及每个陆码各自的量量是多少(陆码只帕放在一侧)?
            1g        1g                 1g
            2g        1g 1g              1-2g
                    =>1g 2g              1-2g 
            4g        1g 1g 2g           1-4g
                    =>1g 2g 3g           1-6g
                    =>1g 2g 4g           1-7g
            8g        1g 2g 4g 8g        1-15g
            16g       1g 2g 4g 8g 16g      1-31g
            22g       1g 2g 4g 8g 16g 32g      1-63g
            64g       1g 2g 4g 8g 16g 32g 64g     1-127g
        (3)、编程题:
        要求用户输入下落时问(整数),并按照公式0.5*9.8*t*t 来计算下落的位移并打印出来
        其中小数数据使用double类型声明的变量来记录.
        (4)、编程题:
        要求提示用户输入一个正整数类型的秒数,拆分为时分秒并打印出来
                  + 加法   - 减法   *乘法   / 除法   % 取余
          如:3666秒  =>  1小时1分钟6秒
  
  2、常用的运算符
    算数运算符:加、减、乘、除、取余
    字符串连接符:+
    当+的任意一边有字符串时,做连接操作
    关系运算符:大于(>)、小于(<)、等于、大于等于(>=)、小等等于(<=)、不等于(!=) ,结果都为布尔类型
    赋值运算符:=
    逻辑运算符:与(&&)、或(||)、非(!)
    逻辑与:当且仅当&&两边都为真时,结果才为真
    逻辑或:任意一边为真时,结果都为真,
    非:当表达式为真时,结果为假,表达式为假时,结果为真

    逻辑运算符 与、或的短路特性
    逻辑与运算符:当&&前面的表达式为假时,后面不做判断
    逻辑或运算符: 当||前面的表达式为真时,后面不做判断

    自增减运算符:加加、减减
    加加分为  前++ 和后++
    减减分为  前-- 和后-

    淘宝、京东、抖音、拼多多(百亿补贴、3人团、5人团)、唯品会、得物、小红书、快手...
    抖音、快手最贵:推流(几十万)、主播出场费 (课时费 800-1200/时,赵雅芝、刘涛几十万酒(53))
    拼多多 53 45
    中国上市的互联网公司:台积电(台湾)、腾讯、拼多多、阿里

    三目运算符: 条件表达式? 表达式1:表达式2
    若条件表达式为真=>执行表达式1
    若条件表达式为假=>执行表达式2
    练习: 1.要求重点掌掘所有运算符的符号和功能以及时间拆分的案例。
             2.提示用户输入一个三位数的正数,然后进行逆序处理再打印.
                    如: 123=>321   打印
             3.使用三目运算符判断用户输入的整数是负数、正数还是零

二、Java基础流程控制

  1、流程控制语句

    在java中,任何复杂逻辑,都可以使用顺序、分支、循环三种结构进行描述
    (1)、分支结构
      概念:在java中,当需要使用条件判断时,则需要使用分支结构

      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以下:

        作业: 计算个人所得税
          根据用户输入的薪水计算个人所得税并打印出来,其中个税起征点为:5000元,具体规则如下:
          个人所得税起征点每月5000元。个人所得税起征点为5000元/月或60000万元/年,工资范围以及税率:
          1、工资范围在1至5000元之间的,包括5000元,适用个人所得税税率为百分之零
          2、工资范围在5000至8000元之间的,包括8000元,适用个人所得税税率为百分之三
      3、工资范围在8000至17000元之间的,包括17000元,适用个人所得税税率为百分之十
      4、工资范围在17000至30000元之间的,包括30000元,适用个人所得税税率为百分之二十
      5、工资范围在30000至40000元之间的,包括40000元,适用个人所得税税率为百分之二十五
      6、工资范围在40000至60000元之间的,包括60000元,适用个人所得税税率为百分之三十
      7、工资范国在60000至85000元之间的,包括85000元,适用个人所得税税率为百分之三十五
      8、工资范围在85000元以上的,适用个人所得税税率为百分之四十五

代码:

package Test_01_23_1;
import java.util.Scanner;
public class Practice {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入您的工资:");
        double wage = scanner.nextDouble();
        double money = 0;
        if(wage < 1){
            System.out.println("您输入的工资有误!");
        }else{
            money = calculateIncomeTax(wage);
        }
        System.out.println("您的个人所得税为:" + money + "元");
    }

    public static double calculateIncomeTax(double wage) {
        double money = 0;
        if (wage <= 5000) {
            money = 0;
        }else if (wage <= 8000) {
            money = (wage - 5000) * 0.03;
        } else if (wage <= 17000) {
            money = (wage - 5000) * 0.1;
        } else if (wage <= 30000) {
            money = (wage - 5000) * 0.2;
        } else if (wage <= 40000) {
            money = (wage - 5000) * 0.25;
        } else if (wage <= 60000) {
            money = (wage - 5000) * 0.3;
        } else if (wage <= 85000) {
            money = (wage - 5000) * 0.35;
        } else {
            money = (wage - 5000) * 0.45;
        }
        return money;
    }
}


      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(表达式){
      case1:语句块1
      break //可选
      case 2: 语句块2
      break
      case n:语句块n
      break
      default 语句块
      }

      执行流程:
      若表达式满足case1执行case1中的语句块
      若表达式满足case 2 执行case 2中梅的语句块
      若表达式满足case n 执行case n中的语句块
      都不满足,执行default中的语句块
            案例:提示用户输入业绩排名,判断去哪儿玩儿
        1、欧洲阵  2、亚洲  3、国内游  4、省内游
        练习:提示用户输入月份,判断当月天数(不考虑闺年)

代码:

package Test_01_23_1;

import java.util.Scanner;

public class YearDemo {
    public static void main( String [] args) {
        Scanner sc = new Scanner(System.in);
        int month;
        System.out.println("请输入月份:");
        month = sc.nextInt();
        switch (month){
            case 1: case 3: case 5: case 7: case 8: case 10:case 12:
                System.out.println("该月为31天");
                break;
            case 2:
                System.out.println("该月为28天");
                break;
            case 4: case 6: case 9: case 11:
                System.out.println("该月为30天");
                break;
            default:
                System.out.println("输入月份错误!");
        }
    }
}


  2、循环结构

    for循环

      语法格式
      for(初始表达式;条件表达式;修改初始表达式){
          循环体;
      }
    执行流程:
      初始表达式 =>条件表达式[若成立] =>循环体; =>修改初始表达式 =>条件表达式 =>若成立。。。
      若不成立 =>跳出循环体;
         案例: 打印1-100之间的数字
         练习: 打印1-100之间的偶数
      break和continue
      break:表示结束当前语句块,在循环中表示结束当前循环体
      continue: 在循环中表示跳出当前循环体,继续执行下一次循环

代码:

package Test_01_23_1;

public class ForDemo01 {
    public static void main(String[] args) {
        for(int i = 1;i<=10;i++){
            if(i == 5){
                continue;
            }
            System.out.print(i +" ");
        }
        System.out.println(" ");
        for(int a = 1;a<=100;a++){
            if(a % 2 == 0){
                System.out.print(a + " ");
            }
        }
    }
}


    while循环

      语法格式:
      初始表达式
      while(条件表达式X){
           循环体;
           修改初始表达式;
      }

      执行流程:
      初始表达式 =>条件表达式 =>若成立 =>执行循环体 =>修改初始达式 =>条件表达式=>。。。。
      若不成立 =>不进入循环体,执行后边的代码
          案例: 打印1-100之间的数字
      作业:跑 跑完一圈提示用户是否还能跑,如果不能则结束

代码:

package Test_01_23_1;

import java.util.Scanner;

public class WhiteDemo02 {
    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("加油,加油! 正在跑第" + i + "圈。");
                i++;
            }else if("否".equals(str)){
                System.out.println("不行了,跑不动了!");
                break;
            }
        }
    }
}


    do-while循环

      语法格式
      初始表达式
      do{
          循环体;
          修改初始表达式
      }while(条件表达式);
      执行流程:
          案例: 打印1-100之间的数字

代码:

package Test_01_23_01;

public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 1;

        do{
            System.out.println(i + " ");
            i++;
        }while(i <= 0);
    }
}


    双重for循环

        语法格式:
        for(初始表达式1;条件表达式2;修改初始表达式3){
              for(初始表达式4;条件表达式5;修改初始表达式6){
            循环体
        执行流程:
    初始表达式1 => 条件表达式2 => 若成立 => 初始表达式4 => 条件表达式5 => 循环体 =>修改初始表达式6 => 条件表达式5 => 若成立 => 循环体 => 修改初表达式6 => 条件表达式 => 循环体...=>不成立 => 修改初始表达式3 => 条件表达式2 => 初始表达式4 => 直到条件表达还是2不成立 =>跳出循环体
        若不成立 => 修改表达式3 => 条件表达式2 => 成立[不成立]
        若不成立 => 跳出循环体,执行后面的代码

代码:

package Test_01_23_01;

public class DoubleForDemo01 {
    public static void main(String[] args) {
        for(int i = 1; i<=5; i++){
            for(int j = 1; j <= i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
        for(int i = 1; i <=9;i++){
            for(int j = 1;j<=i;j++){
                System.out.print( i + "*" + j + "=" + i*j + " ");
            }
            System.out.println();
        }
    }
}


        注意事项:
        1.外层循环用来控制行数,内层循环用于控制列数
    2.外层循环的变量改动一次,内层循环需要从头到尾执行一遍; (外层循环执行一次,内层循环需要跑一圈)
    3.今后开发中,如果遇到几行几列时,使用双重循环,循环的嵌套不宜超过3层:
        案例
        使用双重for循环打印
        练习打印九九乘法表

代码:

package Test_01_23_01;

public class DoubleForDemo01{

        public static void main(String[]args){

                for(int i=1:i<=5;i++){

                        for(int j=1;j<= i;j++){

                                System.out.print("*");

                                }
                                System.out.println();

                         }
                        for(int i=1;i <=9;i++){

                                for(int j=1;j<=i;j++){

                                        System.out.print(i + "*"+j+ "="+ i*j +"");

                                        }
                                        System.out.println();

                                        }

                        }

                }


     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值