java实训day2_标识符_关键字_数据类型_运算符_流程控制

day2学习内容

标识符和关键字

  • 标识符
    • 需要用户自己定义的符号
    • 由 字母,数字,_,$组成
    • 首字符不能为数字,Java关键字
    • 大小写敏感
    • 长度不受限
  • 标识符分类与命名规则
    • 变量和方法:第一个单词小写字母开头,后面单词首字母大写
    • 类名:第一个单词大写,单词缩写每个单词都大写
    • 包:都小写
    • 常量:都大写,指出常量的完整意义
    • 见文识意,用对应英文单词!!
  • 关键字 慢慢学就都知道了

变量和常量

  • 变量 在程序运行时值可变的标识符.在内存中时一段由名字的连续存储空间type varName[=value];

    ​ tips: 1. [ ]代表可有可无

    ​ 2.黄色波浪线表示当前变量未被使用或其他警告,减少脏代码

  • 常量 在程序运行时值不可以改变的标识符. 使用 final关键字,声明时必须初始化, final int VALUENAME = value;

Java数据类型

  • 基本数据类型

    • 数值型

      • 整数类型
        • byte(不建议使用)
        • short(不建议使用)
        • int: 4 个字节
        • long: 8个字节, 超过9个9用它, 赋值时在数字末尾写L
      • 浮点类型
        • float:4个字节,后面加F
        • double:8个字节
    • 字符型: char

      • 2个字节

      • 注意字符编码问题

      • 转义字符 Linux下\r回车到一行的头上

        ​ \n换行到下一行当前位置

        ​ \t

    • 布尔型(Boolean):值只为ture或false,不是0或1

  • 引用数据类型(除基本类型的所有)

    • 接口
    • 数组
    • 字符串等

tips: 1. 所有基本类型存在栈中

  1. 引用类型值存在堆中,栈中存堆中地址的引用,所以叫引用类型
  2. 栈比较小,堆很大
  3. 关于long型赋值需要加L :java默认整型数据为int类型,开辟的临时空间为int型,小于要输入的值的大小,所以在赋值时给数字后面写L使得开辟long型临时空间.
  4. 浮点型默认为double型
  5. 小转大自动转,大转小强转,注意精度丢失
  6. 小作业,了解字符编码过程

成员变量和局部变量

  • 成员变量:又称为全局变量,在类中方法外,系统默认赋值
  • 局部变量: 方法中的变量,声明时最好赋值,否则可能出错

Java运算符

  • 和c/c++一样
  • 逻辑运算符(与c/c++有点区别):
    • 短路与 &&
    • 短路或 || (他俩性能高)
    • 与&
    • 或|
    • 非!
  • 运算符优先级

流程控制

  • if (和c/c++一致)

    • 单分支 条件成立执行操作

    • 双分支 成立一个操作,不成立一个操作

    • 多分支

    • 嵌套

    • 小练习 :输入成绩,根据成绩所处区间给予评价,0-100分.

      import java.util.Scanner;
      public class Day2Test1 {
          public static void main(String[] args){
              System.out.println("输入成绩");
              Scanner input = new Scanner(System.in);
              double grade = input.nextDouble();
              if(grade>=90&&grade<=100)
                  System.out.println("真棒");
              else  if(grade>=80&&grade<90)
                  System.out.println("优秀");
              else  if(grade>=70&&grade<80)
                  System.out.println("一般");
              else  if(grade>=60&&grade<70)
                  System.out.println("良");
              else
                  System.out.println("没有及格");
          }
      }
      
      

    上面代码给个界限判断

  • switch

    • 必须时等值判断,不能用于区间判断

    • 注意break与下坠

    • 相当于特殊的if,对应具体值的情况

    • 小练习判断对应月份的天数

      import java.util.Scanner;
      public class Day2Test2 {
          public static void main(String[] args) {
              System.out.println("请输入月份(数字)");
              Scanner input = new Scanner (System.in);
              int month = input.nextInt();
              switch(month){
                  case 1:
                      System.out.println(month+"月有31天");
                  break;
                  case 3:
                      System.out.println(month+"月有31天");
                      break;
                  case 5:
                      System.out.println(month+"月有31天");
                      break;
                  case 7:
                      System.out.println(month+"月有31天");
                      break;
                  case 8:
                      System.out.println(month+"月有31天");
                      break;
                  case 12:
                      System.out.println(month+"月有31天");
                      break;
                  case 2:
                      System.out.println(month+"月有可能是28天");
                      break;
                  case 4:
                      System.out.println(month+"月有30天");
                      break;
                  case 6:
                      System.out.println(month+"月有30天");
                      break;
                  case 9:
                      System.out.println(month+"月有30天");
                      break;
                  case 11:
                      System.out.println(month+"月有30天");
                      break;
              }
          }
      }//笨笨版
      
      
      import java.util.Scanner;
      public class Day2Test2 {
          public static void main(String[] args) {
              System.out.println("请输入月份(数字)");
              Scanner input = new Scanner (System.in);
              int month = input.nextInt();
              switch(month){
                  case 4:
                  case 6:
                  case 9:
                  case 11:
                      System.out.println(month+"月有30天");
                      break;
                  case 2:
                      System.out.println(month+"月有可能是28天");
                      break;
                  default:
                      System.out.println(month+"月有31天");
                      break;
              }
          }
      }//机智版
      

      上面代码给个界限判断

  • while循环

    • 既可做已知循环次数的循环也可以做不可知的循环次数
    • while
    • do while
  • for循环

    • 普通for: for(int i=0;i < n; i++)

      • i=0 ; i<n ; i++尽量不要更改写法,一般改n(循环次数)就行.
    • 增强for: for(Object obj : Array)

      • for each
      • 将数组内每一项取出
      • obj代表Array中每一个元素
    • 双重for:

      • out:for(int i=0;i < n; i++){
        	for(int j=0;j < n; j++)
          		{break out ;}
        }//跳出内循环同时跳出外循环
        
posted @ 2021-01-06 21:17  zzz2077  阅读(65)  评论(0编辑  收藏  举报