运算符&Scanner&Random&流程控制语句

1.运算符

    算数运算符

        +:  正号(可以忽略);加法运算;串的连接                   

        -: 负号; 减法运算;                

        */:乘除

%:取模

++   --:自增自减

++,--操作自己

        ++放在操作数的前面还是后面,都是自身+1

        --放在操作数的前面还是后面,都是自身-1

++,--操作别人

        ++--放在操作数的前面,先自身+1|-1,再去参与运算

        ++--放在操作数的后面,先去参与运算,在自身+1-1

    赋值运算符

基础赋值运算符

        =  是java中唯一一个自右向左运算的符号 ,优先级最低

 扩展赋值运算符(算数运算符+基础赋值运算符)

        +=  a+=b; ==> a=a+b;

        -=

        *= a*=b; ==> a=a*b;

        /=

        %=

推荐使用扩展赋值运算符,因为这样执行效率高.

    比较运算符|关系运算符

        >  <  >=  <=

            byte   short  int  long  float  double  char

        ==    !=

            基本数据类型,引用数据类型

关系运算符最终得到的结果 boolean类型的结果

    逻辑运算符

& 与      一个false就是false,两个都为true,才为true

|  或      一个为true就是true,两个都为false,才是false

!  非       取反  !true->false  !false->true

^  亦或    相同为false,不同为true

短路: 如果第一个操作数就能够决定最终的结果,第二个操作数位置不执行

&& 短路与

|| 短路或

推荐使用短路内容

所有的逻辑运算符的操作数都为值为boolean类型的表达式

    条件运算符

条件表达式 ? 值1 : 值2;

条件表达式:值为boolean类型的表达式

执行流程:

        1.条件表达式 ,最终会得到一个boolean结果

        2.如果结果为true,整个条件表达式最终的结果为值1

        3.如果结果为flase,最终结果为值2

条件运算符最终肯定会得到一个结果

    位运算符

先把操作数转为二进制,根据运算符的逻辑进行操作,最终得到的结果再转为十进制

& : 同一位置的两个数,如果一个为0就是0,两个都为1才是1

| : 同一位置的两个数,如果一个为1就是1,两个都为0才是0

^ : 同一位置的两个数,相同为0,不同为1

位移运算符

<< 左移 第一个操作数转为2进制,第二个操作数是移动位数 ,向左移动指定的位数,空位补零

8<<2  1000左移2位  1000 00 -> 转为十进制 32

>> 右移 第一个操作数转为2进制,第二个操作数是移动位数 ,向右移动指定的位数,想象数据的右边有一条分水线,右侧的内容砍掉,只保留左侧的数据,转为十进制

8>>2  1000 右移2位  10->转为十进制  2

右移相当于/2    8>>3  8/2^3

左移相当于*2 8<<3  8*2^3

位运算符比直接使用* /效率高

2.Scanner

Scanner : 接收键盘输入的内容

使用步骤:

        1.导包  import 导入 + 权限命名(报名+类名);

                    位置: 类的上面导包

        2.创建这个类型的引用

                    Scanner sc=new Scanner(System.in);

        3.使用功能:

                引用.功能名字();

                    sc.nextInt();  接收用户键盘输入的整数类型的数据

                    sc.nextLong();  接收用户键盘输入的整数类型的数据

                    sc.nextByte();  接收用户键盘输入的整数类型的数据

                    sc.nextShort();  接收用户键盘输入的整数类型的数据

                    sc.nextFloat();  接收用户键盘输入的整数类型的数据

                    sc.nextDouble();  接收用户键盘输入的整数类型的数据

                    sc.next()  从有效字符开始接收,空格不算,接收用户输入的字符串内容,知道遇到空格,tab,就接收不到数据,但是功能没有停止,遇到enter功能结束

                    sc.nextLine() 接收一整行的数据

                    从第一个字符开始接收,知道遇到enter结束

                    系列next功能不能接收enter,遇到enter结束,nextLine可以接收enter

        4.关闭

                    引用.close()

关闭了之后就不能再次使用,就算是重新打开也不好用

3.Random

产生随机数

1.导包  import java.util.Random;

2.创建类型的引用 Random ran=new Random();

3.使用功能:

引用.nextInt();  产生一个int范围内的随机整数

引用.nextInt(整数n);  产生一个 [0,n) 随机整数

[0,max) ran.nextInt(max);

[0,max]  ran.nextInt(max+1);

[min,max] ran.nextInt(max-min+1)+min;

[min,max) ran.nextInt(max-min)+min;

引用.nextDouble() [0.0,1.0)之间的随机小数

4.流程控制语句


顺序结构: 从上到下从左到右

选择结构: 满足条件才能执行

循环结构: 重复执行某些代码

选择结构:

        if ...else

        switch

if else语句

if结构:

        单选择|单分支:

        if(条件表达式){

                    满足条件才执行的语句体;

            }

条件表达式:值为boolean类型的表达式

执行流程:

1.执行条件表达式,如果结果为true,就执行语句体

2.如果结果为false,就跳过if结构

双选择|双分支:

if(条件表达式){

语句体1;

}else{

语句体2;

}

执行流程:

1.执行条件表达式,如果结果为true,就执行语句体1

2.如果结果为false,就执行语句体2

多选择|多分支:

if(条件表达式1){

语句体1;

}else if(条件表达式2){

语句体2;

}

.....

else{

以上条件都不满足,就执行else中的内容  语句体n

}

执行流程:

1.计算条件表达式1,如果结果为true,执行语句体1,如果结果为false

2.执行条件表达式2,如果结果为true,执行语句体2,如果结果为false

....

如果以上条件都不满足,执行else中的语句体n

注意:如果语句体只有一句,前后的{}可以省略

如果一个if语句中如果存在接盘侠else,肯定有结果

if与条件运算符之间的区别:

条件运算符肯定有结果,if不一定

能使用条件运算符的就推荐使用条件运算符,结构简单,效率较高

switch语句

定值判断 switch

区间判断  if

能用switch肯定能用if,能用if的不一定能用switch

switch(表达式){

case 值1 :

语句体1;

break;

case 值2:

语句体2;

break;

case 值3:

语句体3;

break;

......

default:

以上值都不满足,执行default中的内容

break;

}

表达式: 只能为byte,short,int,char,字符串(1.7),枚举(1.5)

一般使用变量

case: case后的定值与表达式的结果进行判断是否相等,对应执行不同的语句体

break: 结束switch语句,如果没有break,会发生case穿透,从现在执行完的语句体开始,如果没有break,下面的case无论是否相等,都会执行对应的语句体,直到遇到下一个break或者switch语句的结束而结束

default: 接盘侠,相当于else,以上值都不满足,执行default中的内容

可写可不写,default位置可以改变

执行流程:

1.计算表达式

2.那值与case后的值比较是否相等,如果相等

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

推荐阅读更多精彩内容