day04注释

/*
* 从控制台读取数据
*  1.导入Java的API Scanner类
*     import java.util.Scanner;
*  在package 之后,class之前
*  可以写多个,表示导入多个类
*  可以用*导入一个包(少见,不常用);
*  2.使用Scanner
*   1.创建对象console:控制台
*      Scanner console=new Scanner(System.in);
*   2.调用Scanner类型提供的API方法从控制台获取数据
*      double d = console.nextDouble();//获取控制台下一个浮点数
*   
*   
*   #运算符
*   
*   ##关系运行
*   1.运算符号 > <  >=  <=  ==  !=
*   2.比较两个数值得关系
*   3.比较结果是boolean类型,成立true,不成立false
*   
*   案例:
*      int age = 18;
*      boolean isKid = age < 16 ;
*      System.out.println(isKid);//false
*      char sex = '男';
*      boolean isMan = sex == '男';
*      System.out.println(isMan);//true
*  
*    ##逻辑运算
*    1.运算符 &&(与,并且) ||(或,或者) !(非,否则)
*    2.对boolean 类型数据进行计算,得到boolean类型结果
*    3.运算规则
*     && 并且:两个boolean 参与运算,都是true,则返回true
*     false && false ---> false  短路与运算 第一个为假,则不再判断第二个。
*     false && true ---> false   短路与运算 第一个为假,则不再判断第二个。
*     true && false ---> false  不会短路。
*     true && true ---> true   不会短路。
*     && 运算的逻辑意义:两个都成立才成立
*     
*     || 或运算:两个boolean参与运算,只有一个是true,返回结果就是true
*     false || false ---> false
*      
*     false || true ---> true
*       
*     true || false ---> true   短路或运算 第一个为真,则不再判断第二个。
*      
*     true || true ---> true    短路或运算 第一个为真,则不再判断第二个。
*     
*     ! 非运算 :单个boolean类型参与运算
*     !true ---> false
*     !false---> true
*     
*     案例:
*     //判断某字符是否为大写英文字符
*      char c;
*      c='B';//'A':65  'B':66  ... 'Z':90
*      //只要一个字符的编码属于[65,90]范围就说明是大写英文字符。
*      即:65<=60<=90
*      也就是:'A'<=c 并且 c<='Z';
*      得到 'A'<=c && c<='Z';
*      boolean l = 'A'<=c && c<='Z';
*              65<=c && c<=90
*              65<=20013 && 20013<=90
*                 true    &&   false
*                        false    
*      //判断一个字符c,是否为英文字母
*      //一个字符c是大写或者是小写
*      //(c是大写)||(c是小写)
*      //('A'<=c&&c<='Z')||('a'<=c&&c<='z')//不加小括号,逻辑运算优先级也是先&&,再||
*        
*        char c = 'A';
*        boolean l=('A'<=c&&c<='Z')||('a'<=c&&c<='z');
*        System.out.println(l);
*        
*        
*        理解==接受
*        重复一万遍,谎言变成真理。
*        
*        ##如何从控制台读取一个字符
*        1.Scanner 没有提供读取一个字符的方法
*        String str = console.nextLine();
*        2.取字符串中的第一个字符
*        char ch = str.charAt(0);
*        
*     ##赋值运算
*     1.运算符号 =
*     2.将数据从右侧存储到左侧
*     3.赋值运算的优先级非常低,在最后执行
*     4.赋值运算表达有值:是赋值的值
*         int a=5,b=6,c=7,d;
*         d=a+b%c;
*         d=d+2;
*     5.=的结合性:先执行右侧的等号
*         a=b=c=5;等价于a=(b=(c=5));
*         a=(b=5)+c%3;//工作不要写,工作要注重可读性,越简单越好
*             
*     System.out.printin(a=8);//整体结果是8
*     System.out.printin(a);//结果是2
*     System.out.printin(a=8%3);//整体结果是2
*     System.out.printin(a);//结果是2
*    
*     ##扩展赋值运算(复合赋值运算)
*     引子
*        //得到偶数序列
*         * int i=0;//0
*         * i=i+2;//2  可以替换为 i+=2;  i增加2,i值先增加2,再赋值给i
*         * i=i+2;//4
*         * i+i+2;//6
*         //复合赋值运算的偶数序列
*          * int i =0;
*          * i+=2;
*          * i+=2;
*          * i+=2;
*          * i+=2;
*         1.一个2元运算符  ?与 = 复合
*            X=X?n  复合为 X?=   
*            +=   表达式X += 5
*            -=   表达式X -= 5
*            *=     表达式X *= 5
*            /=   表达式X /= 5
*            %=   表达式X %= 5
*         2.使用方式:先正常写,如果能够简化为复合赋值运算,再进行替换
*         3.复合赋值运算包含强制类型转换计算(好处:自带强转,强转为定义的变量类型)
*               int a = 5;
*               a *= 4完全等价于a=(int)(a*4);
*               a *= 1.4; //a=(int)(a*1.4);
*               
*               byte b = 6;
*               b+=6;//byte b=(byte)(b+6)
*               
*         案例:
*           double total = 100;
*           //total=total*0.5;
*           total*=0.5;
*           System.out.println(total);
*           
*                   
*        !!复合赋值运算,内嵌强制转换类型!!
*        
*        char c='A';
*        System.out.println(c);
*        c+=2;//char c = (char)(c+2)
*        System.out.println(c);
*        c+=2.23;//char c = (char)(c+2.2)
*        System.out.println(c);
*           
*            
*      #字符串连接运算
*         > 提示:一个符号 "+" 两种功能,称为 **运算符重载**
*         (重载:例如:打人、打游戏,都是打,但方法不一样)
*         
*         1.运算符 +
*         2.运算规则区别:
*             当 + 的两端都是数值,执行数值加法计算
*             当 + 的一端出现字符串时候,执行字符串连接
*        3.连接时候
*            数值转换为10进制连接
*            char类型按照字符进行连接
*            boolean 按照 true、false连接
*        4.数值加法和连接运算优先级意义,按照从左到右顺序结合执行
*            1+5+4+"A"+4+5+1//10A451
*            1+5+4+"A"+(4+5+1)//10A10
*            'A'+1+"A"//66A
*             比较
*            "A"+1+'A'//A1A
*            
*            案例:
*            int a =5,b =6;
*            char c='A';
*            String str ="ABC";
*            int n =a+b;//11
*            int num=a+c;//70
*           String s1=str+a;//字符串连接ABC5
*           String s2=a+str;//字符串连接5ABC
*           String s3=c+str;//AABC
*           String s4=str+'c';//字符串连接ABCc
*            
*         5.三目运算符
*             int a>5 ? a-1:a+1;
*             
*             结果总行数:rows=110行
*           每页行数 size = 25 ;
*           计算一共有多少页 ?
*            
*        int a = 110%25==0 ? a :a+1;   
*        int pages,rows,size;
*        //page 代表计算以后的页数
*        //rows 是已知行数
*        //size 每页行数
*        Scanner scan=new Scanner(System.in);
*        System.out.println("输入总行数:");
*        rows=scan.nextInt();
*        System.out.println("输入每页行数:");
*        size=scan.nextInt();
*        pages =rows%size>0?rows/size+1:rows/size;
*        System.out.println("页数:"+pages);
*            
*            
*            三目运算可以嵌套,但一般不用,可读性差。
*            
*            !(非)是单目运算
*            int year;
*            ((year%4==0)&&!(year%400==0))||(year%400==0);//没括也正确
*            year%4==0&&!year%400==0||year%400==0;
*            
*            
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值