黑马程序员技术交流社区

标题: java12基础班学习技术笔记1 [打印本页]

作者: hoshaonniurou    时间: 2018-4-3 20:00
标题: java12基础班学习技术笔记1
第一天的笔记发现丢失了,我从第二天开始,从<运算符>to<数组>的内容


day02



运算符分类;
        算术运算符

        赋值运算符

        关系运算符

        逻辑运算符
        三元运算符
    算数运算符:

        +,-,*,/,%,++,--

        整数相除只能得到整数。想要得到小数,就必须有浮点数参与运算

        %:用于获取两个数相除时候的余数

        字符参与运算就是拿字符的ASCII码进行运算

    ++,--:
            单独使用的时候,++,--放在变量前面或者后面结果一样

            ++在后面,先拿变量做操作,然后变量在++

            ++在前面,先变量++,然后在拿变量做操作

    注意:拓展的赋值运算符,隐含了强制转换
    关系运算符:
            ==,!=,>,>=,<,<=

    逻辑运算符:用于连接关系表达式
            &,|,^,!

            &:有假则假

            |:有真则真

            !:事物的向反面

            ^:相同为false,不同为true

    &&与&的区别:
            &是左右两边都需要计算
            &&左边为false,右边不执行

    三元运算符:
            关系表达式?表达式1:表达式2

    执行流程:
            A:计算关系表达式的值,看是true还是false

            B:如果是true,表达式1就是结果

                  如果是false,表达式2就是结果
    如何实现键盘录入数据?目前我只能使用JDK提供的类Scanner

    步骤:

            A:导包

                        import java.util.Scanner;

                        在一个类中顺序:package>import>class

            B:创建键盘录入对象

                        Scanner sc = new Scanner(System.in);

            C:接受数据

                        int i = sc.nextInt();



案例:求和
import java.util.Scanner;
public class Demo01 {
     public static void main(String[] arge){
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入第一个整数");
          int x = sc.nextInt();
         
          System.out.println("请输入第二个整数");
          int y = sc.nextInt();
         
          int sum = x + y;
          System.out.println("sum = " + sum);
     }
}



案例:最大值

import java.util.Scanner;
public class Demo01 {
     public static void main(String[] arge){
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入第一个整数");
          int x = sc.nextInt();
         
          System.out.println("请输入第二个整数");
          int y = sc.nextInt();
         
          System.out.println("请输入第三个整数");
          int z = sc.nextInt();
         
          int max = x > y ? x : y;
          max = max > z ? max :z;
              System.out.println("最大值是" + max);
     }
}

day03


if语句有三种格式:

   if语句格式1:

       if(关系表达式){
            语句体;

        }

执行流程:
    A:首先计算关系表达式的值,是true还是false

    B:如果是true,就执行语句体

    C:如果是false,就不执行语句体

file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image.png
import java.util.Scanner;


   public class Demo01{
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个数");

    int a = sc.nextInt:

        if(a % 2 == 1){
            System.out.println("这个数是奇数");

            }else{
             System.out.println("这个数是偶数");

            }
    }

}


       if语句格式2:

            if(关系表达式){
                语句体;
            }else{
                语句体2;
            }

执行流程:
    A:首先计算关系表达式的值,是true还是false
    B:如果是true,就执行语句体
    C:如果是false,就执行语句体2
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(1).png
if语句格式3:          
if(关系表达式1) {
     语句体1;
}else  if (关系表达式2) {
     语句体2;
}
    …
else {
     语句体n+1;
}
执行流程
A.首先判断关系表达式1看其结果是true还是false
B.如果是true就执行语句体1
C.如果是false就继续判断关系表达式2看其结果是true还是false
D.如果是true就执行语句体2
E.如果是false就继续判断关系表达式…看其结果是true还是false

F.如果没有任何关系表达式为true,就执行语句体n+1

file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(2).png

import java.util.Scanner;

public class Demo01{
     public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入学生成绩");
          int a = sc.nextInt();
          if(a <= 0 || a >= 100){
              System.out.println("你输入有误");
          }else if(a >= 90 ){
              System.out.println("优秀");
          }else if(a >= 80 ){
              System.out.println("优秀");
          }else if(a >= 70 ){
              System.out.println("优秀");
          }else if(a >= 60 ){
              System.out.println("优秀");
          }else{
              System.out.println("不及格");
          }
     }
}


switch表示这是switch语句
    表达式的取值:byte,short,int,char
    JDK5以后可以是枚举
    JDK7以后可以是String
    case后面跟的是要和表达式进行比较的值
    语句体部分可以是一条或多条语句
    break表示中断,结束的意思,可以结束switch语句
    default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
    首先计算出表达式的值
    其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

    最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(3).png
import java.util.Scanner;

public class Demo01{
     public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          System.out.println("请输入一个数字");
          int a = sc.nextInt();
          switch(a){
              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;
              case 7:
                   System.out.println("今天星期日");
                   break;
              default:
                   System.out.println("输入有误");
                   break;
          }

For循环语句的格式:
    for(初始化语句;判断条件语句;控制条件语句) {
             循环体语句;

        }
执行流程:
    A:执行初始化语句
    B:执行判断条件语句,看其结果是true还是false
        如果是false,循环结束。
        如果是true,继续执行。
    C:执行循环体语句
    D:执行控制条件语句

    E:回到B继续
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(4).png
while循环的格式
        do {
                 循环体语句;
           }while((判断条件语句);
    扩展格式
           初始化语句;
       do {

             循环体语句;
             控制条件语句;

        } while((判断条件语句);
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Image(5).png

day04


动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度]
    int[] arr = new int[5]

Java中的内存分配:
    栈(存储的是局部变量)

    堆(存储的是new出来的对象)

    方法区(面向对象)

file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/Java中的内存分配图解.bmp c

静态初始化:
    数据类型[] 数组名 = new 数据类型[]{元素1,元素2.......}

数组中的元素个数:length:arr.length
遍历数组:

public class Demo01{
     public static void main(String[] args) {
          int[] arr = {12,23,45,67,89};
          for(int a = 0;a < arr.length;a++){
              System.out.println(arr[a]);
          }            
     }
}


二维数组:其实就是元素为一堆数组的数组
定义格式:
    数据类型[][] 数组名;
    数据类型 数组名[][];
    数据类型[] 数组名[];
初始化:
    A:动态初始化
        数据类型[][] 数组名 = new 数据类型[m][n];
        m表示的是二维数组中一维数组个数
        n表示一维数组中的元素个数
    B:静态初始化
        数据类型[][] 数组名 = new 数据类型[][]{{元素...}{元素...}...}





作者: 小浙姐姐    时间: 2018-4-6 14:37





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2