黑马程序员技术交流社区

标题: 【济南中心】JAVA编程阶梯:基础篇之第三章 [打印本页]

作者: 小鲁哥哥    时间: 2016-7-17 18:53
标题: 【济南中心】JAVA编程阶梯:基础篇之第三章
本帖最后由 小鲁哥哥 于 2020-1-8 22:06 编辑

点击查看济南黑马校区最新开班计划

【济南中心】JAVA编程阶梯:基础篇之第三章


逻辑运算符
基本用法
     逻辑运算符一般用于连接boolean类型的表达式或者值。
     表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
          算术表达式:a + b
          比较表达式:a == b(条件表达式)
特点:偶数个不改变本身。
举个栗子:
       用来连接boolean模式的表达式
        &(与):  3<x<5应写成  x>3 & x>5
        两边都是true,结果是true,否则都是false
        true & true = true ;
        true & false = false;
        false & true = false;
        false & false = false ;
       |(或):  x<3 | x>5
        两边都是false,结果是false,否则都是true
        true | true = true ;
        true |  false = true;
        false |  true = true;
        false |  false = false ;
        ^(异或):
        两边相同为false,两边不同为true。
        true ^ true = false ;
        true ^  false = true;
        false ^  true = true;
        false ^  false = false ;
        !(非):
        true = false;
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( |)的不同之处是:当左右都为true时,结果为false。

位运算符

<<:就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,右边被移空的部分补0。相当于乘与2的倍数
>>:右移稍微复杂一点,如果最高位是0,左边被移空的位就填入0;如果最高位是1,左边被移空的位就填入1。相当于除以2的倍数
>>>:无论最高位是1还是0,左边被移空的高位都填入0。
看结果:总结相当于乘以或者除以2的多少次幂。
1为真0为假。
&:有0则0,可以用来取二进制中的有效位1。
|:有1位为1,结果为1
^:相同则0,不同则1 ,a^b^b  a异或b两次还是a。
~:按位取反  6取反 ~6+1=-6

三元运算符
格式:(关系表达式)?表达式1:表达式2   如:z=(x>y)?x:y
如果条件为true,运算后的结果是表达式1
如果条件为false,运算后的结果是表达式2
和if else 的简写差不多
一定要返回一个变量或者值不能是其他语句。

键盘录入的基本格式
1.导入包: import  java.util.Scanner;
2.在main函数中实例化对象: Scanner sc = new Scanner(System.in);
        接受用户输入:   
        2.1) 接收整数:
                int num = sc.nexInt();
        2.2)    接收字符串:
                String str = sc.next();
        2.3)接收浮点值:  
                 double val = sc.nextDouble();
     在Scanner类中,有一些:hasNextXxxx()方法,这些方法可以先期判断是否能够获取一个Xxxx的值,如果可以,此方法返回true,否则返回false  

流程控制语句

流程控制语句分类
顺序结构
选择结构
循环结构
选择结构的分类
if语句
switch语句
if语句有几种格式
格式1
  1.          if(关系表达式) ;{
  2.                  语句体
  3.          }
复制代码

  执行流程
      先计算比较表达式的值,看其返回值是true还是false。
      如果是true,就执行语句体;
      如果是false,就不执行语句体;

  选择结构if语句注意事项
  a:比较表达式无论简单还是复杂,结果必须是boolean类型
  b:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
  c:一般来说:有左大括号就没有分号,有分号就没有左大括号
格式2
  1.    if(关系表达式){                 
  2.              语句体
  3.          }else{
  4.                  语句体
  5.          };
复制代码

  执行流程:
      
首先计算比较表达式的值,看其返回值是true还是false
      
如果是true,就执行语句体1
      
如果是false,就执行语句体2
   注意事项:else后面是没有比较表达式的,只有if后面有。
  if语句的格式2和三元的相互转换问题:
     当if语句控制的语句体是一条输出语句的时候,就不成立。因为三元运算符是一个运算符,必须要求有一个结果返回。而输出语句却不能作为一个返回结果,在其他的时候三元运算符的操作都可以使用if语句改进
  格式3
  1.           if(关系表达式){               
  2.                  语句体
  3.          }else if(关系表达式) {
  4.                  语句体
  5.          }
  6.           ...
  7.          else{
  8.                  语句体
  9.          };
复制代码

执行流程:
       首先计算比较表达式1看其返回值是true还是false,
       如果是true,就执行语句体1,if语句结束。
       如果是false,接着计算比较表达式2看其返回值是true还是false,
       如果是true,就执行语句体2,if语句结束。
       如果是false,接着计算比较表达式3看其返回值是true还是false,
       如果都是false,就执行语句体n+1。
  注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示


选择结构
   switch语句格式
         
  1.         switch(表达式) {
  2.                     case 值1:
  3.                           语句体1;
  4.                          break;
  5.                       case值2:
  6.                           语句体2;
  7.                           break;
  8.                           …
  9.                     default:  
  10.                         语句体n+1;
  11.                        break;
  12.           }
复制代码

格式解释
1.switch表示这是switch语句
        表达式的取值:byte,short,int,char
        JDK5以后可以是枚举
        JDK7以后可以是String
2.case后面跟的是要和表达式进行比较的值3.语句体部分可以是一条或多条语句
4.break表示中断,结束的意思,可以结束switch语句
5.default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
注意事项
1."表达式"可以产生的值:byte,short,int,char,枚举(JDK5以后),String(JDK7以后)
2.case语句后跟"常量表达式",不能是"变量";而且不能出现相同的常量值;
3.break;语句"不是必须的"。如果不写,如果一旦case相应的值成功,但内部没有break语句,那么将会无条件(不再进行case匹配)的继续向下执行其它case中的语句,直到遇到break;语句或者到达switch语句结束。
4.多个case之间,没有顺序关系;
5.default语句"不是必须的"。可以不写,它就相当于多重if语句中最后的else。
6.default语句和case语句"没有顺序关系"

选择结构if语句和switch语句的区别
switch建议判断固定值的时候用
if建议判断区间或范围的时候用




作者: 济南王昭珽    时间: 2016-7-18 09:41

作者: 橘子哥    时间: 2016-7-18 11:20
非常给力的技术贴,同学们有需要的快来学习啊!
作者: 职业规划—甄苗苗老师    时间: 2016-7-18 11:32
凯老师好给力,知识整理的太清晰了,学习学习
作者: 柳柳桑    时间: 2016-7-18 11:37
欢迎多多补充知识,希望大家有所收益~
作者: SutMaceZo    时间: 2016-7-18 13:03
写的很好很详细!
作者: jundehuang    时间: 2016-7-18 16:52
不错不错,给力技术贴,学习了
作者: whcll    时间: 2016-7-18 19:09
论坛太给力了。能学到很多东西
作者: mz585858    时间: 2016-7-18 21:22
写的不错,借鉴学习啦,能学到不少东西
作者: crazy7    时间: 2016-7-18 21:32
不错不错,学习了
作者: 不作熊孩子    时间: 2016-7-18 21:33
不错,希望大家也多交流,
作者: 云袭    时间: 2016-7-18 21:36
奋斗吧0.......
作者: 一叶知秋来    时间: 2016-7-18 21:50
奋斗不止!!!
作者: xiaodutongxie    时间: 2016-7-18 22:05
为了技术分!!!!!!!!

作者: lhb201607    时间: 2016-7-18 22:07
怎样快速获得技术分啊?
作者: lijiazhi    时间: 2016-7-18 22:36
压力好大啊,大神考了一百分!!
作者: 新兵蛋子    时间: 2016-7-18 22:39
今天的只是不多,要好好复习一下
作者: 新兵蛋子    时间: 2016-7-18 22:40
养成良好的习惯
作者: 新兵蛋子    时间: 2016-7-18 22:46
预习一下
作者: 新兵蛋子    时间: 2016-7-18 22:51
代码敲少了,题目不会做
作者: 新兵蛋子    时间: 2016-7-18 22:52
学的东西的加强记忆
作者: zhangjiesss    时间: 2016-7-18 23:03
加油把。
作者: 时光重来    时间: 2016-7-18 23:19
加油,加油,加油............
作者: 黑泥马    时间: 2016-7-18 23:24
abstract不能和三种修饰符一起用 分别是static final private 不然编译器会报错 大家要记住哦
作者: java627    时间: 2016-7-18 23:29
嗯嗯记住了,好样的
作者: 745661590    时间: 2016-7-18 23:39
压力山大,奋斗不止  加油
作者: Ly丶Roman    时间: 2016-7-18 23:54
加油 努力 相信自己
作者: sanmaovszhe    时间: 2016-7-19 00:05
继续努力!
作者: 新兵蛋子    时间: 2016-7-19 00:34
好困啊啊啊
作者: 新兵蛋子    时间: 2016-7-19 00:35
没学到什么还弄这么晚.
作者: 新兵蛋子    时间: 2016-7-19 00:36
学习过程漫长
作者: 新兵蛋子    时间: 2016-7-19 00:38
好好把握学习的机会
作者: 张作辉    时间: 2016-7-19 00:38
好好把握努力的机会
作者: 新兵蛋子    时间: 2016-7-19 00:39
睡觉了,明天继续.
作者: 自娱自乐的朋朋    时间: 2016-7-19 01:27
睡觉了  明天继续奋斗呢
作者: 翻滚的兔子    时间: 2016-7-19 08:57
新的一天!又要奋斗了。
作者: zhangjiesss    时间: 2016-7-19 08:59
加油吧,梦想未来
作者: carrykhu    时间: 2016-7-19 14:20
醒来继续敲
作者: tomweikai    时间: 2016-7-19 14:36
快速排序哪个大神会,能否讲解一下原理
作者: LuoYadong    时间: 2016-7-19 15:28
可以的,主要是思想!!
作者: 回根的落叶    时间: 2016-7-19 19:05
顶一下!
作者: happy0709    时间: 2016-7-19 21:10
哎今天考试很失败
作者: lsp0523    时间: 2016-7-19 21:15
知识点总结到位,不错,马上收藏。
作者: 赛后追溯    时间: 2016-7-19 21:29
顶一下  !!!
作者: qbh1213    时间: 2016-7-19 21:47
学习javaEE才7天,感觉还行,继续努力,希望顺利进入黑马班.哈哈
作者: 一叶知秋来    时间: 2016-7-19 21:51
学Javaee的,加油!!定!!定!!
作者: xiaodutongxie    时间: 2016-7-19 22:01
日常刷分!!!!!!!!!
作者: houzhiming    时间: 2016-7-19 22:05
加油,一定要上黑马 !必须,肯定,一定!
作者: 素心清影眉带笑    时间: 2016-7-19 22:15
刷分一定要上黑马 !必须,肯定,一定!
作者: yl2016    时间: 2016-7-19 22:22
大家好好加油,目标月薪过万!!!
作者: 时光重来    时间: 2016-7-19 22:31
感觉脑袋沉沉的额!
作者: qinxuezilu1314    时间: 2016-7-19 22:42
感觉脑袋沉沉的额
作者: 文明观球    时间: 2016-7-19 23:04
昨夜做了一个梦
作者: maotoumaotou110    时间: 2016-7-19 23:10
感觉脑袋被掏空
作者: 夜叶lx    时间: 2016-7-19 23:12
楼主好人,平安一生
作者: xc小川123    时间: 2016-7-19 23:23
楼主好人
作者: jjw642961416    时间: 2016-7-19 23:29
大家好好加油,目标月薪过万!!
作者: zhu21925    时间: 2016-7-19 23:30
键盘敲烂,月薪过万
作者: Bingo8888    时间: 2016-7-19 23:38
键盘敲烂,月薪过万
作者: bhc702178    时间: 2016-7-19 23:48
爱生活,爱黑马,爱学习
作者: bhc702178    时间: 2016-7-19 23:50
爱生活,爱黑马,爱学习
作者: Sbbbbbbbbbb    时间: 2016-7-19 23:53
键盘敲烂,月薪上万
作者: 额滴神啊    时间: 2016-7-19 23:56
感觉脑袋被掏空
作者: 坏坏坏男孩    时间: 2016-7-20 00:03
666666666666
作者: 紫电_恶魔    时间: 2016-7-20 00:09
又来了,加油
作者: Zhaoyy330901    时间: 2016-7-20 00:09
键盘敲烂,月薪过万,完全不是梦!
作者: 新兵蛋子    时间: 2016-7-20 00:14
又过了一天
作者: 新兵蛋子    时间: 2016-7-20 00:15
学习的只是好多都没敲
作者: 新兵蛋子    时间: 2016-7-20 00:16
赶紧把技术分搞到手
作者: 新兵蛋子    时间: 2016-7-20 00:17
编程这条路确实不好走
作者: 新兵蛋子    时间: 2016-7-20 00:19
好好学习,天天向上
作者: 翻滚的兔子    时间: 2016-7-20 09:05
爱生活,爱黑马,爱学习
作者: 梦回初中三班_    时间: 2016-7-20 10:08
好好学习,天天向下
作者: ylca    时间: 2016-7-20 10:48
很好 这很Android!!!
作者: 简祖明    时间: 2016-7-20 12:19
Android快结束
作者: wj3725    时间: 2016-7-20 13:05
very good !!!
作者: 自娱自乐的朋朋    时间: 2016-7-20 15:43

找到合适自己的才是正确的。技术不会被淘汰。学习永不止
作者: 老王239    时间: 2016-7-20 18:01
永不止步
作者: TommingYu    时间: 2016-7-20 18:08
喵了个咪~~  

作者: guiliujun    时间: 2016-7-20 18:09
繁重的学习累而充实,坚持
作者: whcll    时间: 2016-7-20 19:54
下雨淋湿全身。但是我不怕
作者: javaee王虎    时间: 2016-7-20 20:27
好好学习,天天向上
作者: xiaodutongxie    时间: 2016-7-20 20:34
Good Good Study Day Day Up
作者: 富林    时间: 2016-7-20 21:09
可以!!!!
作者: wwwjaycn0717    时间: 2016-7-20 21:56
Good Good Study Day Day Up
作者: a5191336    时间: 2016-7-20 22:11
技术贴,已收藏
作者: lijiazhi    时间: 2016-7-20 22:15
今天懵了一天
作者: frozentears    时间: 2016-7-20 22:20
写的很详细  学习了
作者: 文明观球    时间: 2016-7-20 22:34
我的爱啊啊啊啊啊
作者: xc小川123    时间: 2016-7-20 22:58
今天懵了一整天,晚上就清醒了
作者: 波比    时间: 2016-7-20 22:58
昏昏沉沉跟着老师看完一天视频,有些方
作者: DDV    时间: 2016-7-20 23:01
今天我们学习异常和io了 今天的异常学的懂 但是还得敲代码
作者: zhang894095    时间: 2016-7-20 23:07
现在头好懵啊

作者: yl2016    时间: 2016-7-20 23:10
大家好好努力,
      争取月薪过万!!!
作者: ssianlichen    时间: 2016-7-20 23:20
很好啊   很详细不错
作者: 夜叶lx    时间: 2016-7-20 23:22
大家好好努力,
争取月薪过万!!!
作者: 时光重来    时间: 2016-7-20 23:34
键盘敲烂,月薪过万
作者: yang0907    时间: 2016-7-20 23:37
今天的作业真是让我懵逼了,语句都会写,编程思想真的很重要
作者: 柴磊磊    时间: 2016-7-20 23:38
思维思维思维,很重要,明明很简单的题目,非要想复杂
作者: snowqueen    时间: 2016-7-20 23:44
顶顶顶顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2