对do{ }while();一直以来的误解 -----如何理解do{ }while( );语句
在do{ }while( ); 语句中,我之前的理解是:先执行一次do{ },然后判断while( )中的内容,一般里面都是字符串或者数值作比较嘛,所以理解是:如果判断的这个东西,在这个范围中(等于这个条件),则跳出循环,不执行do{}中的内容;如果这个东西不在这个范围内(不等于这个条件),则执行do{}中的语句,执行完结束、跳出。不用认真读这个了,一看就是错的:D ,基础知识时就被自己误导后就是这个理解结果,kk
正确的理解应该是:
1、首先要认识到这是一个循环语句
2、先执行一次do{ },然后判断while( );中的内容是不是要继续循环do{ }中的内容,这种行为说明他是一种 <表达式的值是在每次循环结束时检查>,就是一种“先上车后检票”行为,我管你上火车的时候买不买票,没人守着,等你上完车了,我就来检票了,有票就继续坐着,没票就马上把你赶下车,终止这次旅行呗
3、所以就是:先执行了一次do{ }后,然后进行判断, 当while();中的判断为true时,继续进行do{ }中的循环,然后再判断while(),再循环,再判断...以此反复; 如果当while();中的判断为false时,马上终止循环。
那我当时为啥当时会一直理解错呢呢,是因为当时写了个这样的类:

我当时就这样读的:我输入一个数,当这个数是在1、2、3之间的话,就执行do{ }里面的语句,选择一个case然后就输出“石头,剪刀,布”中一个呗。然后,如果你输入的数字小于等于0或者大于等于4的话,就输入错误的数据嘛,输入错误不就是要跳出判断避免再错 (合着我当时把它当成判断语句了?
所以当我写这个游戏中的另外一个类的时候:

不是要判断你输入 Y or N,根据你的选择来判断是继续游戏还是终止游戏吗所以我就根据我的“经验”,写的是“ while("n".equalsIgnoreCase(choice) ) ”,意思就是<当你输入 Y 的时候,字符串不匹配,所以继续执行do{ }中内容, 当你输入N 的时候,字符串匹配了,所以就跳出循环了>
结果当然是和我的想法不一样了,我输入Y就终止,输入N就执行,怎么想都想不通,就算我改成“ while("y".equalsIgnoreCase(choice) ) ”,运行正常了,还是找不到为什么。(现在终于想通了)
所以首先一定要清楚,do{ }whlie(); 语句是循环用的,不是来判断的,while(); 只是一个工具人,do{ }一定是用来循环的,不是while();判断完之后,就执行一下do{ }就结束了,还要一直判断的。
就酱
个人觉得do{ }while();挺好用的
对do{ }while();一直以来的误解 -----如何理解do{ }while( );语句的更多相关文章
- Expert 诊断优化系列------------------内存不够用么?
现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...
- 苹果开发者账号如何多人协作进行开发和真机调试XCode
首先,先说明一下,我们最容易误解或者理解错误的是:p12证书. 其实p12证书,最直接的使用就是,我们在一台电脑上生成好了cer证书之后,如果使用了开发者账号(无论公司或者个人的)进行ipa进行打包和 ...
- Mysql数据库索引
今天,我们来讲讲Mysql数据库的索引的一些东西,想必大家都知道索引能干吗?必然是查找数据表的时候,查找的速度快啊,尤其是那些几百万行的数据库,不建立索引,你是想考验用户的耐心吗?Mysql有多种存储 ...
- 5dfda1332b67817b0f2d7839242021ce'Java数据结构和算法
1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 "if else" 判断null ...
- 如何把if-else代码重构成高质量代码
原文:https://blog.csdn.net/qq_35440678/article/details/77939999 本文提纲: 为什么我们写的代码都是if-else? 这样的代码有什么缺点? ...
- 【MarkMark学习笔记学习笔记】javascript/js 学习笔记
1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...
- 30 个java编程技巧
1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 ”if else” 判断null元素. Java 的 ...
- 30 个java编程技巧(最佳实践的初学者)
1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 ”if else” 判断null元素. Java 的 ...
- C++ Primer 学习笔记_Chapter4 数组和指针–指针
一.什么是指针? 指针与迭代器一样,指针提供对其所指对象的间接访问,指针保存的是另一个对象的地址: string s("hello"); string *ps = &s; ...
随机推荐
- 《神经网络的梯度推导与代码验证》之CNN的前向传播和反向梯度推导
在FNN(DNN)的前向传播,反向梯度推导以及代码验证中,我们不仅总结了FNN(DNN)这种神经网络结构的前向传播和反向梯度求导公式,还通过tensorflow的自动求微分工具验证了其准确性.在本篇章 ...
- python学习第八天
解析库之bs4的基本使用方法 ''' pip install beautifulsoup4#安装bs4 pip install lxml#安装lxml ''' html_doc = "&qu ...
- 《神经网络的梯度推导与代码验证》之LSTM的前向传播和反向梯度推导
前言 在本篇章,我们将专门针对LSTM这种网络结构进行前向传播介绍和反向梯度推导. 关于LSTM的梯度推导,这一块确实挺不好掌握,原因有: 一些经典的deep learning 教程,例如花书缺乏相关 ...
- vue、react等SPA应用页脚组件闪烁的解决办法
大家好,我是木瓜太香.大家在开发单页应用的时候,经常会遇到这样的需求,头部和尾部两个组件是大多数组件公用的,而中间的内容区域则是单独存在的,而且一般内容组件逻辑会比较多,如果我们不停刷新页面可能会出现 ...
- Oracle中真正稳妥的求三甲的方法
坐地铁回家路上忽然想起,三甲排名可能为多个,只取三名岂不荒谬.不信请看下面数据: create table tb_score( id number(4,0) primary key, name nva ...
- 亚马逊DRKG使用体验
基于文章:探索「老药新用」最短路径:亚马逊AI Lab开源大规模药物重定位知识图谱DRKG,记录了该项目的实际部署与探索过程,供参考. 1. DRKG介绍 大规模药物重定位知识图谱 Drug Repu ...
- 2020重新出发,NOSQL,MongoDB分布式集群架构
MongoDB分布式集群架构 看到这里相信你已经掌握了 MongoDB 的大部分基本知识,现在在单机环境下操作 MongoDB 已经不存在问题,但是单机环境只适合学习和开发测试,在实际的生产环境中,M ...
- 论文:Show and Tell: A Neural Image Caption Generator-阅读总结
Show and Tell: A Neural Image Caption Generator-阅读总结 笔记不能简单的抄写文中的内容,得有自己的思考和理解. 一.基本信息 标题 作者 作者单位 发表 ...
- HBase启用压缩
1. 压缩算法的比较 算法 压缩比 压缩 解压 GZIP 13.4% 21MB/s 118MB/s LZO 20.5% 135MB/s 410MB/s Snappy/Zippy 22.2% 172MB ...
- DASH流媒体MPD中的segmentTemplate
SegmentTemplate利用MPD中的属性代入公式计算可以得到相关通配符的数值,来提供给客户端进行相关地址解析.相较于segmentList,使用 SegmentTemplate 的方式,能够很 ...