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. 反射机制(Java)

    反射机制 今天闲来无事,对反射机制http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html阅读一番,整理了下这方面的知识以及自己的一些心得 ...

  2. IE9 报错 script1004缺少“;”

    在IE9中不支持 let关键字,修改为var就可以了 作者:彼岸舞 时间:2020\07\31 内容关于:工作中用到的小技术 本文来源于网络,只做技术分享,一概不负任何责任

  3. 用安卓 WebView 做一个“套壳”应用

    前言 目前手机应用市场上的 APP 类型主要为以下两种: Native App(原生应用):直接针对平台(Android.iOS 等手机系统)进行开发,属于性能最优的方案,也是开发成本最大的方案. H ...

  4. Ubuntu18.04

    起因 晚上过来加班···· 问题 物理机安装ubuntu时候遇到报错信息 boot failed: please change disks and press a key to continue ht ...

  5. 利用预编译解决C/C++重复定义的错误 -2020.09.13

    利用预编译解决C/C++重复定义的错误 -2020.09.13 我们现在有main.c和function.h两个文件 main.c #include <stdio.h> #include ...

  6. centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)

    先决条件(先假设你做完这两步骤) 检查Linux是否支持虚拟化,验证输出是否为非空如何开启虚拟化 grep -E --color 'vmx|svm' /proc/cpuinfo 安装 kubectl ...

  7. 顶 最新简捷实用的JSP动态网站环境搭建详细步骤

    阿里西西小编给您推荐这个最新简捷实用的JSP动态网站环境搭建详细步骤讲解,这里还有关于JSP 动态网站 环境 搭建 的教程,希望您能够喜欢并学到东西提升自己的知识与技能,下面是内容详细阅读: 最新简捷 ...

  8. LR Robust Stereo VIO for Fast Autonomous Flight

    Abstract 我们展示说我们的Stereo MSCKF在算力上跟state-of-the-art的单目方案是可比的, 而且提供了很大的鲁棒性. 1. Introduction 贡献 第一个开源的f ...

  9. 面试题总结:可能是全网最好的MySQL重要知识点

    标题有点标题党的意思,但希望你在看了文章之后不会有这个想法--这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题. 什么是My ...

  10. 阅读源码的利器——Intellij-IDEA-Replace-in-Path-使用技巧

      前言 讲讲宇宙排名第二的开发工具-–IDEA的使用技巧. 搜索/替换 技巧 阅读源码的利器   1.Match case: 如果勾选该按钮,搜索时将区分大小写字母. 2.Preserve case ...