javabasic-day03

symbal_AssignSymbolDemo01

package com.basic.day03.symbol;   //

/**
 * 注释,有三种, 文档注释,多行注释,单行注释
 *    文档注释: /**   *\/    一般用于类体上面或者是方法上面
 *    单行注释: //.....      一般用于方法里,或者变量附近
 *    多行注释: /*    *\/     一般用于方法里
 * */

/**
 *  运算符之赋值运算符
 *  =:   最简单的赋值运算符,  将等号后的表达式的结果或者变量的值赋值给等号前面的变量
 *  +=:  如: a+=b   相当于  a = a + b
 *  -=:  如: a-=b   相当于  a = a - b
 *  *=:  如: a*=b   相当于  a = a * b
 *  /=:  如: a/=b   相当于  a = a / b
 *  %=:  如: a%=b   相当于  a = a % b
 */
public class AssignSymbolDemo01 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        a += b;  // 相当于 a = a + b
        System.out.println(a);// 30
        System.out.println(b);// 20
        a -= b; // 相当于 a = a - b
        System.out.println(a); // 10

        int c = 3;
        int d = 6;
        c *= d;
        System.out.println(c);//18

        c = 15;
        c /=d;  // 注意: 两个整数做除法运算,是取整操作
        System.out.println(c); //2

        int x = 15;
        int y = 6;
        x %= y;
        System.out.println(x);// 3

    }
}

symbal_LogicSymbolDemo01

package com.basic.day03.symbol;

/**
 * 运算符之逻辑运算符:
 *      在java中,一般研究的是短路逻辑运算符
 *       特点: 第一个条件如果已经可以确定最终结果,那么第二个条件就不再执行,节省时间。
 *
 *
 *      &&:  短路与   :    一假则假,全真为真
 *           true&&true ==>  true
 *           true&&false ==> false
 *           false&&true ==> false
 *           false&&false ==> false
 *
 *           针对于短路与来说: 第一个是false时,不再执行第二个条件,管它是true还是false.
 *
 *      ||   短路或   :    一真则真,全假为假
 *           true||true ==>  true
 *           true||false ==> true
 *           false||true ==> true
 *           false||false ==> false
 *
 *           针对于短路或来说: 第一个是true时,不再执行第二个条件,管它是true还是false.
 *
 *      !    非真既假,非假既真
 */
public class LogicSymbolDemo01 {
    public static void main(String[] args) {
        //验证短路&&
        int a = 1,b = 2,c = 3,d = 4;
        boolean f = a < b && c < d;
        System.out.println("f的值: "+f);  // true
        f = a < b && c > d;
        System.out.println("f的值: "+f);  // false
        f = a > b && c++ < d;
        System.out.println("f的值:"+f);  // false
        System.out.println("c的值:"+c);  //如果c是3,表示第二个条件根本没有执行。
        f = a > b && c > d++;
        System.out.println("f的值:"+f); // false
        System.out.println("d的值:"+d);  // 如果d是4,表示第二个条件根本没有执行

        // 验证短路||

        int m = 1,n = 2,x = 3,y = 4;
        f = m < n || x < y;
        System.out.println("f的值:"+f); // true
        f = m < n || x > y++;
        System.out.println("f的值:"+f); // true
        System.out.println("y的值:"+y); // 4  , 第一个条件为true,就可以确定最终答案, 因此没有执行自增运算,可以证明短路了。
        f = m > n || x < y;
        System.out.println("f的值:"+f); // true
        f = m > n || x > y++;
        System.out.println("f的值:"+f); // false
        System.out.println("y的值:"+y); // 5  , 因为第一个条件式false,不能立即决定最终结果,所以会执行第二个条件,

        //  !   非真既假,非假既真
        f =  !(1 > 2);
        System.out.println("f的值:"+f); //true
        f = !f;
        System.out.println("f的值:"+f); //false
    }
}

symbal_RelationSymbolDemo01

package com.basic.day03.symbol;

/**
 * 运算符之关系运算符:
 *   >,  >=,  <,  <=,   ==,  !=
 *  作用:用于判断两边的大小关系。
 *  返回值: boolean类型
 */
public class RelationSymbolDemo01 {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;
        System.out.println(x>y);  // false
        System.out.println(x>=y);  //false
        System.out.println(x<y);  // true
        System.out.println(x<=y); // true
        System.out.println(x==y);  // false
        System.out.println(x!=y);  // true
    }
}

symbal_ThreeEyeSymbolDemo01

package com.basic.day03.symbol;

/**
 * 运算符之三目运算符(三元运算符,条件运算符)
 * 语法格式:
 *         boolean类型的变量或者表达式?值1:值2
 * 执行逻辑:
 *      当?前的式子或变量返回true, 则使用值1,
 *      当?前的式子或变量返回false,则使用值2
 * 注意:
 *     1.  该运算,依然遵守混合运算时转成取值范围最大的那种类型
 *     2.  值1和值2,可以是变量,也可以是具有返回值的表达式。
 *     3.  值1和值2的最终类型,需要能自动类型转换。
 *     4. 通常三目运算的最终结果,需要使用一个变量来接受,该变量的类型应该是值1或值2中的一个。
 */
public class ThreeEyeSymbolDemo01 {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        String str = a > b ? "是a大于b" : "a不大于b";
        System.out.println(str);

        int m = 10;
        long n = 15;
        long result =  n%m==1?n:m; // 注意,需要考虑m和n在三目运算里都已经是long类型了。
        System.out.println("result:"+result);
    }
}

scanner_RandomDemo01

package com.basic.day03.random;

import java.util.Random;

/**
 * Random: 该类型一般用于产生随机数。比如随机一个范围的整数,或者小数。
 * 使用步骤:
 *      1. 导包操作,   import java.util.Random;
 *      2. 创建对象,   Random r = new Random();
 *      3. 调用相关功能
 *                    r.nextInt(number):  产生一个[0,number)范围内的任意一个整数
 *                    r.nextDouble():   产生一个[0,1)范围内的任意一个小数。
 */
public class RandomDemo01 {
    public static void main(String[] args) {
        Random r = new Random();
        //产生一个[0,10)区间内的一个整数。    生成等号前面的变量快捷键: alt+enter
        int i = r.nextInt(10);
        System.out.println("i=" + i);

        //产生一个[0,10]区间内的一个整数
        int i1 = r.nextInt(11);
        System.out.println("i1=" + i1);

        //产生一个[-5,5]区间内的一个整数
        int i2 = r.nextInt(11)-5;
        System.out.println("i2=" + i2);

        //产生一个[0,1)区间内的任意一个小数
        double v = r.nextDouble();
        System.out.println("v=" + v);


    }
}

scanner_RandomDemo02

package com.basic.day03.random;

import java.util.Random;

/**
 * 练习Random的nextDouble方法
 */
public class RandomDemo02 {
    public static void main(String[] args) {
        Random rd = new Random();
        //随机[0,10)以内的任意小数     [0,1)*10=====>[0,10)
        double num = rd.nextDouble()*10;
        //随机[0,10)以内的任意整数
        int n1 = (int)(rd.nextDouble()*10);
        System.out.println("n1 = " + n1);

        //随机[-6,6]以内的任意整数
        int n2 = (int)(rd.nextDouble()*13-6);
        System.out.println("n2 = " + n2);

        // 随机[5,15]以内的任意整数  [5,16)    [0,11)
        //
        int n3 = (int)((rd.nextDouble()*11)+5);
        /**
         * 通过上述练习:可以总结一个公式
         *   闭区间[n,m]的公式     r.nextDouble()*(m+1-n)+n
         *   开区间[n,m)的公式     r.nextDouble()*(m-n)+n
         */
        // 随机[98,155]以内的任意整数
        int n4 = (int)(rd.nextDouble()*58+98);
        System.out.println("n4:"+n4);
    }
}

math_MathDemo01

package com.basic.day03.math;

/**
 * Math: 数学工具类,里面提供了很多关于数学方面的功能方式。
 * 使用方式: 直接使用类名.具体方法名
 * 里面的内容分类:
 *   静态常量:  E  自然对数   PI  圆周率
 *   常用函数:
 *      max(): 取最大的数
 *      min(): 取最小的数
 *      random(): 随机数,范围[0,1)       与Random的nextDouble()效果一样
 *      abs(): 取绝对值
 *   取整函数:
 *        ceil():  向上取整(大于等于某一个数的最小整数)    比如 ceil(3.4)  得到 4
 *        floor(): 向下取整(小于等于该数的最大整数)     比如floor(3.4)  得到3
 *        rint(): 最近的整数          比如  rint(3.7)   得到4
 *                                 比如 3.5 距离两边一样近,则返回偶数的整数
 *        round(): 四舍五入
 *   指数函数:
 *          pow(): 幂函数
 *          sqrt(): 平方根
 *          cbrt(): 立方根
 *   三角函数:
 *          sin()
 *          cos()
 *          asin()
 *          acose()
 *          tan()
 *          atan()
 *
 *
 */
public class MathDemo01 {
    public static void main(String[] args) {
        System.out.println("自然对数:"+Math.E);  //double类型
        System.out.println("圆周率:"+Math.PI);  //double类型

        System.out.println("3和5比较,其中最大值: "+Math.max(3,5));
        System.out.println("3和5比较,其中最小值: "+Math.min(3,5));
        System.out.println("-3的绝对值: "+Math.abs(-3));

        //使用Math.random()产生一个随机数, 默认是[0,1)区间内的小数
        // [5,10]
        int i = (int) (Math.random() * 6 + 5);
        System.out.println("产生的随机整数:"+i);

        System.out.println("3.4向上取整: "+Math.ceil(3.4));
        System.out.println("3.4向下取整: "+Math.floor(3.4));
        System.out.println("离3.4最近的整数: "+Math.rint(3.4));
        System.out.println("3.4四舍五入后: "+Math.round(3));

        System.out.println("3的4次方:"+Math.pow(3,4));
        System.out.println("8的平方根:"+Math.sqrt(8));
        System.out.println("8的立方根:"+Math.cbrt(8));


    }
}

branch_01IfDemo

package com.basic.day03.branch;

/**
 * 分支结构之if的学习:
 *
 * 基本语法:
 *      if(boolean表达式){
 *          //code1:   表达式返回true,执行code1
 *      }else{
 *          //code2:   表达式返回false,执行code2
 *      }
 */
public class _01IfDemo {
    public static void main(String[] args) {
        //三目运算
        int a = 10;
        int b = 20;
        String str = a<b?"正确":"错误";
        System.out.println(" a<b?  "+str);

        //将上述代码转成if-else分支结构的写法。
        if(a<b){
            System.out.println("正确");
        }else{
            System.out.println("错误");
        }

        System.out.println("---main方法结束---");
    }
}

branch_02IfDemo

package com.basic.day03.branch;

/**
 * if多分支结构:
 *
 *   if(表达式1){
 *       //code1
 *   }else if(表达式2){
 *      //code2
 *   }else if(表达式3){
 *      //code3
 *   }
 *   ......
 *   else{
 *
 *   }
 *   //...后续代码
 *  执行逻辑:
 */
public class _02IfDemo {
    public static void main(String[] args) {
        /*
         * 随机一个整数num:范围[0,100],作为一个分数。
         * 请输入num这个分数的等级
         *  不及格: <60
         *  及格:   <80
         *  良好    <90
         *  优秀:  <100
         *  满分:  =100
         */
        int num = (int) (Math.random()*101);
        System.out.println("偷偷的看一下成绩:"+num);
        if(num<60){
            System.out.println("不及格");
        }else if(num < 80){
            System.out.println("及格");
        }else if(num < 90){
            System.out.println("良好");
        }else if(num < 100){
            System.out.println("优秀");
        }else{
            System.out.println("满分");
        }
        System.out.println("---main方法结束---");
    }
}

branch_03IfDemo

package com.basic.day03.branch;

/**
 * if多分支结构:
 *
 *   if(表达式1){
 *       //code1
 *   }else if(表达式2){
 *      //code2
 *   }else if(表达式3){
 *      //code3
 *   }
 *   ......
 *   else{
 *
 *   }
 *   //...后续代码
 *  执行逻辑:
 */
public class _02IfDemo {
    public static void main(String[] args) {
        /*
         * 随机一个整数num:范围[0,100],作为一个分数。
         * 请输入num这个分数的等级
         *  不及格: <60
         *  及格:   <80
         *  良好    <90
         *  优秀:  <100
         *  满分:  =100
         */
        int num = (int) (Math.random()*101);
        System.out.println("偷偷的看一下成绩:"+num);
        if(num<60){
            System.out.println("不及格");
        }else if(num < 80){
            System.out.println("及格");
        }else if(num < 90){
            System.out.println("良好");
        }else if(num < 100){
            System.out.println("优秀");
        }else{
            System.out.println("满分");
        }
        System.out.println("---main方法结束---");
    }
}

branch_04IfDemo

package com.basic.day03.branch;

/**
 * if多分支结构:
 *
 *   if(表达式1){
 *       //code1
 *   }else if(表达式2){
 *      //code2
 *   }else if(表达式3){
 *      //code3
 *   }
 *   ......
 *   else{
 *
 *   }
 *   //...后续代码
 *  执行逻辑:
 */
public class _02IfDemo {
    public static void main(String[] args) {
        /*
         * 随机一个整数num:范围[0,100],作为一个分数。
         * 请输入num这个分数的等级
         *  不及格: <60
         *  及格:   <80
         *  良好    <90
         *  优秀:  <100
         *  满分:  =100
         */
        int num = (int) (Math.random()*101);
        System.out.println("偷偷的看一下成绩:"+num);
        if(num<60){
            System.out.println("不及格");
        }else if(num < 80){
            System.out.println("及格");
        }else if(num < 90){
            System.out.println("良好");
        }else if(num < 100){
            System.out.println("优秀");
        }else{
            System.out.println("满分");
        }
        System.out.println("---main方法结束---");
    }
}

branch_05IfDemo

package com.basic.day03.branch;

/**
 * if分支语句中,可以没有else语句块。
 *
 * 总结:
 *    1. 带有else语句块的分支结构,一定会执行某一条分支。
 *    2. 不带else语句块的分支结构,可能一条分支都不执行。
 *    3. if分支结构不可能执行多条分支。
 */
public class _05IfDemo {
    public static void main(String[] args) {
        //年满18岁,才可以单独进入澡堂子洗澡
        int age = 16;
        if (age > 18) {
            System.out.println("可以单独进入澡堂子了");
        }
        System.out.println("-----------------------------");

        int answer = (int)(Math.random()*10);
        if(answer>6){
            System.out.println("随机出来的数字大于6");
        }else if (answer>3){
            System.out.println("随机出来的数字大于3");
        }


        System.out.println("---main方法结束---");
    }
}

branch_06SwitchCaseDemo

package com.basic.day03.branch;

/**
 * if分支语句中,可以没有else语句块。
 *
 * 总结:
 *    1. 带有else语句块的分支结构,一定会执行某一条分支。
 *    2. 不带else语句块的分支结构,可能一条分支都不执行。
 *    3. if分支结构不可能执行多条分支。
 */
public class _05IfDemo {
    public static void main(String[] args) {
        //年满18岁,才可以单独进入澡堂子洗澡
        int age = 16;
        if (age > 18) {
            System.out.println("可以单独进入澡堂子了");
        }
        System.out.println("-----------------------------");

        int answer = (int)(Math.random()*10);
        if(answer>6){
            System.out.println("随机出来的数字大于6");
        }else if (answer>3){
            System.out.println("随机出来的数字大于3");
        }


        System.out.println("---main方法结束---");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值