2020-06-04

逻辑运算符                        代码:/*

* 与 (并且)    && 全部都是true,才是true:否则就是false

* 或 (或者)    || 至少一个是true,就是true:全都是false,才是false

* 非 (取反)    ! 本来是true,变成false:本来是false,变成true

*

* 与“&&”,或“||”,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。*

* 注意事项:* 1. 逻辑运算符只能用于boolean值。* 2. 与、或需要左右各自有一个boolean值,但是取反只要有唯一的一个boolean值即可。* 3. 与、或两种运算符,如果有多个条件,可以连续写。* 两个条件: 条件A && 条件B

* 多个条件: 条件A && 条件B && 条件C

*

* TIPS:

*对于1 < x < 的情况,应该拆成两个部分,然后使用与运算符连接起来;* int x = 2;

* 1 < && x < 3

*

* */

public class Demo09Logic {

public static void main(String[] args) {

System.out.println(true &&false); // false

// true && true --> true

        System.out.println(3 <4 &&10 >2); // true

        System.out.println("=======");

        System.out.println(true ||false); // true

        System.out.println(true ||true); // true

        System.out.println(false ||false); // false

        System.out.println("=======");

        System.out.println(true); // true

        System.out.println(!true); // false

        System.out.println("=======");

        int a =10;

        // false && ...

        System.out.println(3 >4 && ++a <100); //false

        System.out.println(a); // 10

        int b =20;

        // true || ...

        System.out.println(3 <4 || ++b <100); // true

        System.out.println(b); // 20

    }

}

三元运算符            代码:/*

* 一元运算符: 只需要一个数据就可以进行操作的运算符。例如: 取反!、自增++、自减--

* 二元运算符: 需要两个数据才可以进行操作的运算符。例如: 加法+、赋值=

* 三元运算符: 需要三个数据才可以进行操作的运算符。*

* 格式:* 数据类型 变量名称 = 条件判断 ?  表达式A:表达式B

*

* 流程:* 首先判断条件是否成立:*      如果成立为true,那么将表达式A的值赋值给左侧的变量*      如果不成立为false,那么将表达式B的值赋值给左侧的变量:* 二者选其一*

* 注意事项:* 1. 必须同时保证表达式A和表达式B都符合左侧数据类型的要求。* 2. 三元运算符的结果必须被使用。* */

public class Demo10Operator {

public static void main(String[] args) {

int a =10;

        int b =20;

        // 数据类型 变量名称 = 条件判断 ? 表达式A: 表达式B;

        // 判断a > 是否成立将a的值赋值给MAX;如果不成立将b的值赋值给max。二者选其一

        int max = a > b ? a : b; //最大的变量

        System.out.println("最大值:" + max); // 20

      // int result = 3 > 4 ? 2.5 : 10; // 错误写法!

        System.out.println(a > b ? a : b); // 正确写法!

        // a > b ? a : b;// 错误写法!

    }

}

方法入门                概述:

我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现编写代码非常的繁琐,而且重复的代码呢过多,能否避免这些重复的代码呢,就需要使用方法来实现。

方法:就是讲一个功能抽取出来,把代码单独独立定义在一个大括号内,形成一个单独的功能。

当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。

方法的定义

定义格式:

修饰符 返回值类型 方法名 (参数列表) {

                代码...

                return;

}

定义格式解释;

1.修饰符:目前固定写法 public static。

2.返回值类型:目前固定写法 vold ,其他返回值类型载后面的课程讲解

3.方法名:为我们定义的方法起名, 满足标示符的规范,用来词用方法

代码               /*

* 定义一个方法的格式:* public static void 方法名称(){

*      方法体* }

*

* 方法名称的命名规则和变量一样,使用小驼峰* 方法体:也就是大括号当中可以包含任意条语句。*

* 注意事项:* 1. 方法定义的先后顺序无所谓* 2. 方法的定义不能产生嵌套包含关系* 3. 方法定义好了之后,不会执行的。如果要向执行,一定要进行方法的调用。*

* 如何调用方法,格式:*

* 方法名称();* */

public class Demo11Method {

public static void main(String[] args) {

// 调用方法

        fanmer(); // 调用农民的方法

        seller(); // 调用小商贩的方法

        cook(); // 调用厨子的方法

        me(); // 调用我的方法

    }

//我

    public static void me() {

System.out.println("我");

    }

//厨子

    public static void cook() {

System.out.println("洗菜");

        System.out.println("切菜");

        System.out.println("炒菜");

        System.out.println("装盘");

    }

// 小商贩

    public static void seller() {

System.out.println("运输到农贸市场");

        System.out.println("太高价格");

        System.out.println("吆喝");

        System.out.println("卖给厨子");

    }

// 农民伯伯

    public static void fanmer() {

System.out.println("播种");

        System.out.println("浇水");

        System.out.println("施肥");

        System.out.println("除虫");

        System.out.println("收割");

        System.out.println("卖给小商贩");

    }

}

JShell脚本工具

JShell脚本工具是JDK9的新特征

什么时候会用到JShell工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编译和行动,这个时候使用JShell工具。

启动JShell工具,在DOS命令行直接输入JShell命令。

命令

代码1:        public class Demo12Notice {

public static void main(String[] args) {

// 右侧确实是一个int数学,但是没有超过左侧的范围,就是正确的。

        // int --> byte,不是自动类型转换

        byte num1 =/*(byte)*/ 30; // 右侧没有超过左侧的范围

        System.out.println(num1); // 30

        // byte num2 = 128; // 右侧超过了左侧的范围

        // int --> char,没有超过范围

        // 编译器将会自动补上一个隐含的(char)

        char zifu =/*(char)*/ 65;

        System.out.println(zifu); // A

    }

}

代码2:/*

*再给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,*那么编译器javac将会直接将若干个常量表达式计算得到结果* short result = 5 + 8;// 等号右边全部都是常量,没有任何变量参与运算* 编译之后,得到的,class字节码文件当中相当于【直接就是】:* short result = 13;* 右侧的常量结果数值,没有超过左侧范围,所以正确。*

* 这称为“编译器的长常量优化”。*

* 但是注意:一旦表达式中有变量参与,那么就不能进行着中优化了。* */

public class Demo13Notice {

public static void main(String[] args) {

short num1 =10; // 正确写法,右侧没有超过左侧的范围

        short a =5;

        short b =8;

        // short + short --> int + int --> int

        // short result - a + b; // 错误写法! 左侧需要是int类型

        // 右侧不用变量,而是采用常量,而且只有两个常量,没有别人

        short result =5 +8;

        System.out.println(result);

        //  short result2 = 5 + a + 8; // 一旦表达式中有变量参与,那么就不能进行着中优化了。

    }

}

流程控制                    概述

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每一条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

顺序流程        代码:// 顺序结构

public class Demo01Sequence {

public static void main(String[] args) {

System.out.println("今天天气不错");

        System.out.println("挺风和日丽的");

        System.out.println("我们下午没课");

        System.out.println("这的确挺爽的");

    }

}

判断语句            代码:import org.w3c.dom.ls.LSOutput;

// 判断语句

public class Demo02If {

public static void main(String[] args) {

System.out.println("去网吧!!!");

        int age =16;

        if (age >=18){

System.out.println("进去嗨皮!!");

        System.out.println("遇见老铁!!");

        }else{

System.out.println("淡定回家");

        }

}

}

if——else语句        代码:// 标准的If——else语句

public class Demo03IfElse {

public static void main(String[] args) {

int num =15;

        if (num %2 ==0){//如果除以2能够余数为0,说明是偶数

            System.out.println("偶数");

        }else{

System.out.println("奇数");

        }

}

}

扩展if-else语句            代码:// x和y的关系满足如下:

// 如果x >= 3,那么y = 2x + 1;

// 如果-1 < x < 3,那么y = 2x;

// 如果x <= -1,那么y = 2x - 1;

public class Demo04IfElseExt {

public static void main(String[] args) {

int x =10;

        int y;

        if (x >=3) {

y =2 * x +1;

        }else if (-1 < x && x <3) {

y =2 * x;

        }else {

y =2 * x -1;

        }

System.out.println("结果是:" + y);

    }

}

用if语句实现考试成绩        代码:public class Demo05IfElseParctise {

public static void main(String[] args) {

int score =100;

        if (score >=90 && score <=100) {

System.out.println("优秀");

        }else if (score >=80 && score <90) {

System.out.println("好");

        }else if (score >=70 && score <80) {

System.out.println("良");

        }else if (score >=60 && score <70) {

System.out.println("及格");

        }else if (score >=0 && score <60) {

System.out.println("不及格");

        }else {// 单独处理边界之外的不合理情况

            System.out.println("数据错误");

        }

}

}

  用if语句代替三元运算        代码:// 题目:使用三元运算符和标准的if-else语句分别实现取两个数字当中的最大值

public class Demo06Max {

public static void main(String[] args) {

int a =105;

        int b =20;

        // 首先使用三元运算符

        // int max = a > b ? a : b;

        // 使用今天if语句

        int max;

        if (a > b) {

max = a;

        }else {

max = b;

        }

System.out.println("最大值:" + max);

    }

}

标准的switch                代码:    public class Demo07Switch {

public static void main(String[] args) {

int num =10;

        switch (num) {

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; // 最后一个break语句可以省略,但是强烈推荐不要省略

        }

}

}

穿透的switch                代码:/*

* switch语句使用的注意事项:*

* 1. 多个case后面的数值不可能重复*

* 2. switch后面小括号当中只能是下列数据类型:* 基本数据类型:byte/short/cher/int

* 引用数据类型:String字符串、enum枚举*

* 3. switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。* “匹配哪一个case就从哪一个位置想下执行,知道遇到break或者整体结束为止。”

* */

public class Demo08SwitchNotice {

public static void main(String[] args) {

int num =2;

        switch (num) {

case 1:

System.out.println("你好");

break;

            case 2:

System.out.println("我好");

                // break

            case 3:

System.out.println("大家好");

break;

            default:

System.out.println("他好,我也好");

break;

        }// switch

    }

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350