博客 学院 下载 更多 zxy18210943475 java 和 、|| 和 | 的区别和作用
- 博客
- 学院
- 下载
- 更多
zxy18210943475
java && 和 &、|| 和 | 的区别和作用
- 标签:
- java
- 681
我在学java网络编程Socket的时候遇到这么个问题
//这是并发的服务端代码,run是实现Runnable接口的方法
public void run() {
try {
System.out.println(s.getInetAddress().getHostAddress());
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream(), true);
if (br.readLine().equals("123") && br.readLine().equals("aaa")) { //问题出在这里
pw.println("登录成功");
} else {
pw.println("密码错误");
}
s.shutdownInput();
s.shutdownOutput();
s.close();
} catch (
IOException e) {
e.printStackTrace();
}
}
}
当我开启服务端和客户端时,如果客户端输入的代码是
123
aaa
将返回“登录成功”
如果是
123
abc //输入错误的密码
将返回“密码错误”
但是如果是这样呢
456 //帐号密码都是错的
abc
返回的是“null”
我想了很久,发现问题出在这里:
if (br.readLine().equals("123") && br.readLine().equals("aaa"))
如果使用&&,if的判断可能会只判断一次,也就是“br.readLine.equals("123")”如果为false,那么后面部分的语句将不再执行,而这时候流还没读取完,所以就服务端的getOutputStream没有执行,客户端没收到值,输出自然就为null了
我想到的一个办法就是不使用&&而使用&
即:if (br.readLine().equals("123") & br.readLine().equals("aaa"))
当流在读取时,如果if第一个判断读到false仍然会继续判断,这样流的读取就可以顺利读完,服务端的输出流也可以正常执行了
总结:&& & || 和 | 会影响到判断语句的判断方式,一般来说,常用&& 和 ||
&& :判断时,如果第一个为true,继续判断第二个,第三个... 如果全部为true,结果为true,如果判断过程中一旦遇到false,将停止判断,因为对于判断是否全部为true的&&来说,只要有一个false,那么后续的判断都没有意义
||:它判断时,只要有一个为true,那么他得出的结果就为true,后续的判断也没意义,如果全为false,那么结果为false
& 和 | :它们的判断结果和&&、|| 没有区别,但在执行时有,也就是如果执行到某一部分即使已经得出结果,它们仍然会继续判断,直到所有的判断结束
我认为,在有些时候& 和 | 还是很有用的!
博客 学院 下载 更多 zxy18210943475 java 和 、|| 和 | 的区别和作用相关推荐
- 博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客
博客 学院 下载 GitChat 论坛 问答 商城 头条 活动 码云 ITeye 写博客 发Chat 登录注册 常见8种算法总结 转载 2017年03月16日 22:23:43 目录 冒泡排序 鸡尾酒 ...
- Soledad多用途WordPress博客主题下载
在数字时代,博客已经成为表达个人观点.分享经验和建立品牌的重要工具.无论您是个人博主.创作者还是新闻机构,拥有一个引人注目.功能丰富的博客网站是吸引读者和增强影响力的关键.Soledad多用途Word ...
- 优秀博客链接(linux c/c++ java go php android ios 前端 j2ee windows linux 算法 ACM 深度/机器学习 AI opencv nlp)
pudn 阿甘兄 前端 服务端 底层 移动端 大数据 云计算 AI 培训机构的课程差不多就这一套了 大数据 AI NLP 高等数学 LeetCode.<数据结构与算法之美>学习笔记.AI ...
- echarts实现河南各省市区县地图(河南省各省市区县地图json文件可以在我博客里下载)
前言:最近公司项目有个需求,展示河南省各省市区县的地图,并展示相应的数据,看了些资料决定用echarts实现. 一.完成之后的效果图 点击市的模块显示对应的市,并显示对应市的数据 点击区县的模块显示对 ...
- 优秀博客链接(linux c/c++ java go php android ios 前端 j2ee windows linux 算法 ACM AI 深度/机器学习 opencv nlp)
pudn 阿甘兄 前端 服务端 底层 移动端 大数据 云计算 AI 培训机构的课程差不多就这一套了 LeetCode.<数据结构与算法之美>学习笔记.AI 前端资料学习,vue.js re ...
- java博客论坛设计报告,javaweb课程设计报告-个人博客网站的实现(Java).doc
PAGE 武汉工商学院信息工程学院 项目名称: 个人博客网站的实现(Java) 学生姓名: 学 号: 班 级: 12计科本1 指导教师: 2014年12月23日 目录 TOC \o "1-3 ...
- Java项目:朴素风个人博客系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 基于vue + Springboo痼J后端分离项目个人博客系统,注册 登录,首页展示,喜爰图书展示,后台图书 ...
- Java项目:个人博客系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:文章展示.热门文章.文章分类.标签云用户登录评论.匿名评论用户留言.匿名留言评论管理.文章发布.文章管理文章数 ...
- Hexo框架+Github Page搭建博客(附下载主题、导出CSDN博客至Hexo博客)
文章目录 一.Git的下载与安装 二.Nodejs安装 三.安装Hexo 四.初始化Hexo 4.1 hexo init 4.2 配置_config.yml 4.3 hexo s运行 4.4 下载更多 ...
最新文章
- 【原创】Cookie应用(二)
- 第一门编程语言的选择无关紧要?
- 腾讯3366小游戏站算法被破解
- js模拟栈---进制转化。十进制转任意进制进制,任意进制转十进制
- SQL连接查询和嵌套查询详解
- git中找回丢失的对象
- mysql+5.5.18+linux+下载,mysql5.7.18+linux安装二进制包与运行
- 大改革,GNOME 3.x将直接跳到GNOME 40
- wordpress函数手册_WordPress主题开发手册
- Linux—文件命令之touch命令
- Wed Jul 22 00:00:00 CST 2020 java转成指定日期格式的字符串
- OverTheWire的bandit游戏(11-20)
- 入门vue+springboot项目
- 威联通NAS安装openwrt旁路由
- 信息安全复习四:置换密码乘积密码隐写术
- 服务器 虚拟gpu,云服务器 虚拟gpu
- APP支持文件共享设置(iOS)
- 读书有益——》关于雪下很大的成语
- 秦九邵算法计算多项式(C语言实现)
- 关于Java RDP协议实现远程桌面连接的开源项目properjavardp