自学JAVA_day_02随堂笔记

/*

  • 变量:就是将不确定的数据进行存储,也就是需要在内存中
  • 开辟一个空间。
  • 如何开辟内存空间呢?
  • 就是通过明确数据类型,变量名称数据来完成
  • 名称:变量名
  • 空间的类型:数据类型,JAVA语言对不同的类型进行了定义 称为、
  • 强语言
  • JAVA语言是强类型语言,对于每一种数据都定义了明确的具体数据类型
  • 在内存中分配了不同大小的内存空间
  • 数据类型分为了:基本数据类型,引用数据类型
  • 基本类型:数值型 字符型 布尔型
  • 数值型:整数类型short int long
  •  :浮点型 float double
    
  • 引用数据类型:类class 接口interface 数组[]
  • 整数默认int 小数默认 double
  • byte 八个二进制位 -128-127
  • short 十六个二进制位 -215-215-1
  • int 三十二个二进制表示 -231-231
  • float 单精度精确程度稍微小一点 32二进制位
  • double 双精度精确程度比float精确一点 64位二进制
    *char 字符型 0-65535
  •    * 什么时候定义变量
       * 当数据不确定的时候,需要对数据进行存储时
       * 就定义一个变量来完成存储动作 
    

*算术运算符

  • */
    public class day_02 {

    public static void main(String[] args)
    {
    /*
    //定义变量的名字
    //数据类型:变量名 = 初始值;
    //定义一个int 类型的变量取值为4
    int x = 4;
    System.out.println(x);
    x = 10; // 可以重复使用
    System.out.println(x);
    byte b = 2; // -128-127
    // byte b1 = 128; 会提示你可能会丢失精度

      short s = 30000; 
      
      long l = 4l; //通常后面用l标识一下
      
      // float f = 2.3;  丢失精度
     	
      char ch = '4';
      char cha = ' ';
      char cha1 = '+';
      boolean bol = false;  //布尔值
      //类型转换
      byte b1 = 3;
      
      b1=(byte)(b1+2); //强制类型转换
      // 自动类型提升类型提升 
       System.out.println(b1);
       
      //char ch4 = 'a';
      System.out.println('a');
      System.out.println('a' +1 ); //类型提升97+1
      System.out.println((char)('a'+1));
      
     //字符'1'对应的是49
     //数值1不一样
     
     // 除法运算
     int x = 4270;
     x = x/1000*1000;
     System.out.println(x);  //4000
     
      // 取模运算
     	System.out.println(10%4); // 2
     // TODO Auto-generated method stub
     // ++ 自增  -- 自减
     int y = 3,z;
     z = y++;
     System.out.println("x = "+x +" y = "+y);
     //++(--)在前 和++(--)在后 规则和c语言里面规矩一样 
     // + 字符串连接符号 
     System.out.println("asda"+"sa");
     System.out.println("5+5"+(5+5)); //5+555 
     
     //转义字符
     //通过反斜线 \ 来转变后面字母或者符号的含义
     //  \n : 换行
     //	\b : 退格 相当于
     //	\r : 按下回车键
     //  \t :制表符  TAB
     // 在windows中换行由 \r 或  \n 来换行
     //双引号打印 "\"\""  打印反斜线 \\
     System.out.print("hello word");
     System.out.println("hello Java");
     char cj = '\n';
     char c = '你'; //一个汉字是两个字节,一个char是两个字节,可以装得下中文
     
     // print 与 println 区别在于 ln换行
     
     
     // 赋值运算符
     int x = 3;
     // += *= /= %=
     x += 4; //相当于x = x+4;
     // 以下的都是一样的格式
     short s = 4;
     //s = s + 5;  错误 因为5为整形 s类型提升 数据存到两字节的里面存放不进去
     //上面是两次运算,先做加法在做赋值,中间进行了类型提升
     s+=5; //这个是经过一次运算,这个会做一个自动转换动作而上面的不自动进行自动转换
     
     int c,d,e;
     c = d = e = 5;
     
     //比较运算符结果(true/false)
     //比较运算符等号 == 不能误写为 = 
     System.out.println(1>2); //false
     */
     
     //逻辑运算符
     /*
     运算符        运算       范列  			 结果
     &        and(与)  false&true      false  
     | 		or(或)	   false | true  true
     ^       XOR(异或)	true^false		true		
     !		NOT(非)		!true			false
     &&		and(短路)	false&&true		false
     || 		OR(短路)		false|true		true
     */
     //逻辑运算符用于连接boolean类型的表达式
     // int x = 4;
    

    // x>3 & x<6 = true & true = true;
    // 真 & 真 为真
    // 真与假为假
    // 只要两边的boolean表达式结果,有一个为假,整个表达式就为假
    // 只要两边都有true结果为
    /*
    true | true = true;
    true | false = true;
    false | true = true;
    false | false = false;
    |:两边只要有一个为true,结果为true
    只要都有false结果为false.
    /
    /

    • ^异或 : 当真异或真的时候结果为假
    • true ^ true = false;
    • true ^ false = true;
    • false ^ true = true;
    • false ^ false = false;
    • ^:两边相同结果为假
    • 两边不同结果为真
    • */
      System.out.println(false^false); //false
      int z = 4;

    System.out.println(z<3 && z<6);
    /*

    • & :无论左边是true是false,右边都运算
    • && : 当左边为false的时,右边不运算
    • | :两边都参与运算
    • || :当左边为true,右边不运算
    • */

    //位运算
    /*
    *运算符 运算 范例

    • << 左移 3<<2=12 -->3*2^2=12
    •   	右移				3>>1=1  -->3/2^1=1
      
    •   	无符号右移		3>>1=1  -->3/2^1=1
      
    • & 与运算 6 & 3 = 2
    • ! 减运算 6 | 3 = 7
    • ^ 异或运算 6 ^ 3 = 5
    • ~ 反码 ~6 = -7

    //左移动:其实就是乘以2的移动的位数次幂
    //右移动:就是除以2的移动的位数次幂,最高位补什么由原有数据的最高为而定
    //如果最高为为0 右移动后,就补0空位
    //无符号右移动:无论最高位是什么,移动后 都用0补位
    //与符号也可以作为位运算存在 真与假 假 真与真 真 假与真 假
    //或符号,真或真 真 真或假 真 假或真 真 假或假 假
    //异或运算,两边相同位假 两边不同为真 一个数异或同一个数两次,结果还是那个数
    //异或用法大部分用于加密
    System.out.println(6&3); //2
    System.out.println(6^5); //3
    //运算练习
    //1.最有效的方式算出2乘以8等于几
    System.out.println(2<<3);
    //2.对两个整数变量的值进行互换(不需要第三方变量)
    int x=3,y = 8;
    x = x + 8;
    y = x - 8;
    x = x - y;
    System.out.println("x = " + x + " y = "+y);

     	2.6 程序流程控制(指的就是JAVA中的语句)
     	1.判断结构
     	2.选择结构
     	3.循环结构
     	三种格式:
     		格式1.	if(条件表达式){执行语句}
     		
     		格式2.  if(条件表达式){
     					执行语句;
     				}else {
     					执行语句;
     				}
     		
     		格式3.if(条件表达式;){
     			  		执行语句1;
     			  }else if(条件表达式;){
     			  		执行语句2;
     			  }
     			  .....
     			  else{
     			  		执行语句;
     			  }			
     	判断结构的语法格式基本与c语言一致与三元运算符的区别 
     	if else 结构 简写格式 :变量 = (条件表达式)?表达式1:表达式2;
     	
     	三元运算符:
     	好处:可以简化if else 代码
     	弊端: 因为是一个运算符,所以算完必须要有一个结果。
     	// 三元运算符
     int a=9,b;
     b = (a>1)?100:200;
     System.out.println(b);
     // 需求1:根据用户定义的数值不同。打印对应的星期英文
    
     int num  =8;
     
     if(num > 0 && num <8 ) {
     	if(num == 1)
     		System.out.println("1day");
     	else if(num == 2)
     		System.out.println("2day");
     	else if(num == 3)
     		System.out.println("3day");
     	else if(num == 4)
     		System.out.println("4day");
     	else if(num == 5)
     		System.out.println("5day");
     	else if(num == 6)
     		System.out.println("6day");
     	else if(num == 7)
     		System.out.println("7day");
     }else {
     	System.out.println("请输入正确的日期");
     }
    

    //需求2:根据用户所指定的月份,打印该月份所属的季节
    //3,4,5 6,7,8 9,10,11 12,1,2

     int x = 4;
     if(x == 3  || x == 4 || x == 5)
     	System.out.println(x+"春季");
     else if(x == 6  || x == 7 || x == 8)
     	System.out.println(x+"夏季");
     else if(x == 9  || x == 10 || x == 11)
     	System.out.println(x+"秋季");
     else if(x == 12  || x == 1 || x == 2)
     	System.out.println(x+"冬季");
     else 
     	System.out.println(x+"月份不存在");
     	
     //方法二:
     int x=2;
     if(x > 12 || x < 1)
     	System.out.println(x+"月份季节不存在");
     else if(x>=3 && x<=5)
     	System.out.println(x + "月份是春季节");
     else if(x>=6 && x<=8)
     	System.out.println(x + "月份是夏季节");
     else if(x>=9 && x<=11)
     	System.out.println(x + "月份是秋季节");
     else
     	System.out.println(x + "月份是东季节");
    

    选择语句(switch语句)
    格式:
    switch(表达式)
    {
    case 取值1:
    执行语句;
    break;
    case 取值2:
    执行语句;
    break;
    case 取值3:
    执行语句;
    break;


    dafault;
    执行语句;
    break;
    } 和c语言里面的类似

     	1.switch:被选择类型只有4种 byte  short int char
     	2.case之间与default没有顺序,先执行第一个case 没有被匹配的case执行default
     	3.结束switch语句的两种情况:遇到break,执行到switch语句结束
     	4.如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句
     		,直到遇到break或则switch结尾结束。
    

    //switch判断季节
    int x = 4;
    switch(x) {
    case 3:
    case 4:
    case 5:
    System.out.println(x + “春”);
    break;
    case 6:
    case 7:
    case 8:
    System.out.println(x + “夏”);
    break;
    case 9:
    case 10:
    case 11:
    System.out.println(x + “秋”);
    break;
    case 12:
    case 1:
    case 2:
    System.out.println(x + “冬”);
    break;
    default:
    System.out.println(“没有月份所在的季节”);
    } //一般对值不多的情况才使用,相对于if语句更高效一些
    //if 和 switch语句很像
    //如果判断的具体数值不多,而是复合byte short int char这四种情况
    //虽然两个语句都可以使用,建议使用switch语句 因为效率稍高
    //其他情况:对区间的额判断,对结果位Boolean类型判断,使用if if的使用范围更广
    //一、break
    for(int x=0; x<3 ; x++) {
    for(int y=0;y<4;y++) {
    System.out.println(“x=”+x);
    break; //break 只跳出当前循环 所以上面的输出语句执行了三次
    }
    }

    w:for(int x=0; x<3 ; x++) {
    q:for(int y=0;y<4;y++) {
    System.out.println(“x=”+x);
    break w; //break 只跳出别名为q的循环,标号:给循环起名字的一种标志
    }
    }
    /
    /

    //二、continue:只作用与循环结构,继续循环
    for(int x =0 ; x<3 ; x++) {
    continue; //下面的输出语句一句都不执行
    System.out.println(“x=”+x);
    // continue;
    }

     	for(int x=1; x<=10 ; x++) {
     		if(x%2 ==1)
     			continue;  //一但遇到奇数就会跳出循环
     		System.out.println("x="+x);   //输出全部偶数
     	}
      */
      w:for(int x =0; x<=3 ; x++) {
     	 for(int y =0; y<4; y++) {
     		System.out.println("x="+x);
     		System.out.println("y="+y);  //y一直等于0
     		continue w;  //continue也可以跳出标号的循环
     		//注意:break和continue语句的作用的范围
     		//当break和continue单独存在时,下面可以又任何语句,因为都执行不到
     	 }
      }
    

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值