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( );语句的更多相关文章

  1. Expert 诊断优化系列------------------内存不够用么?

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  2. 苹果开发者账号如何多人协作进行开发和真机调试XCode

    首先,先说明一下,我们最容易误解或者理解错误的是:p12证书. 其实p12证书,最直接的使用就是,我们在一台电脑上生成好了cer证书之后,如果使用了开发者账号(无论公司或者个人的)进行ipa进行打包和 ...

  3. Mysql数据库索引

    今天,我们来讲讲Mysql数据库的索引的一些东西,想必大家都知道索引能干吗?必然是查找数据表的时候,查找的速度快啊,尤其是那些几百万行的数据库,不建立索引,你是想考验用户的耐心吗?Mysql有多种存储 ...

  4. 5dfda1332b67817b0f2d7839242021ce'Java数据结构和算法

    1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 "if else" 判断null ...

  5. 如何把if-else代码重构成高质量代码

    原文:https://blog.csdn.net/qq_35440678/article/details/77939999 本文提纲: 为什么我们写的代码都是if-else? 这样的代码有什么缺点? ...

  6. 【MarkMark学习笔记学习笔记】javascript/js 学习笔记

    1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...

  7. 30 个java编程技巧

    1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 ”if else” 判断null元素. Java 的 ...

  8. 30 个java编程技巧(最佳实践的初学者)

    1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 ”if else” 判断null元素. Java 的 ...

  9. C++ Primer 学习笔记_Chapter4 数组和指针–指针

    一.什么是指针? 指针与迭代器一样,指针提供对其所指对象的间接访问,指针保存的是另一个对象的地址: string s("hello"); string *ps = &s; ...

随机推荐

  1. GreateMan_开源

    oschina: https://www.oschina.net/ Tencent: https://github.com/Tencent 360: https://github.com/Qihoo3 ...

  2. 【问题】Java和Scala混合编译下无法正常使用lombok的问题

    工作中有java和scala和混合编译的工程,最近遇到一个问题,就是工程中有依赖java bean的scala文件,编译过程中发现编译器无法找到Java bean 中 lombok生成的getter, ...

  3. wpf之DataGrid绑定DataTable,其中DataGridComboBoxColumn双向绑定枚举enum

    百度了快一天,没结果,除了几个原创的,都是复制粘贴的内容. 不想用别的笨办法,于是脑洞大开,想出了我的办法. 首先是前台代码,与网上的比较类似: xmlns:jz="clr-namespac ...

  4. 剑指 Offer 56 - II. 数组中数字出现的次数 II

    题目描述 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次.请找出那个只出现一次的数字. 示例1: 输入:nums = [3,4,3,3] 输出:4 示例2: 输入:nums = ...

  5. 跟着尚硅谷系统学习Docker-【day05】

    day05-20200717   p21.docker容器数据卷容器   就是活动硬盘上面挂载硬盘进行数据的传递.     [docker run -it --name dc01 fyr/centos ...

  6. SpringBoot—整合log4j2入门和log4j2.xml配置详解

    关注微信公众号:CodingTechWork,一起学习进步. 引言   对于一个线上程序或者服务而言,重要的是要有日志输出,这样才能方便运维.而日志的输出需要有一定的规划,如日志命名.日志大小,日志分 ...

  7. String.format与搭配转化符的使用

    String的format语法搭配转化符,在格式化输出方面效果特别好,值得掌握. 例程: System.out.println("----C1---|----C2---|----C3---| ...

  8. 整理的网上的MySQL优化文章总结

    MySQL优化 Linux优化 IO优化 调整Linux默认的IO调度算法. IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调 ...

  9. Docker学习笔记,从原理到实践

    什么是docker Docker是使用go语言基于LINUX内核的cgroup,namespace以及AUFS 类的 Union FS 等技术,对进程进行封装隔离的一种操作系统层面的虚拟化技术,由于隔 ...

  10. Java语言的优势

    首先, Java语言是一种纯粹的面向对象的编程语言.这样就决定了Java语言更能直接客观地反映现实生活中的对象,因此Java语言更适合大型的复杂系统开发. 其次, Java语言是一种平台无关的语言.  ...