首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在do while循环内变量值不更新

在do while循环内,变量值不更新是指在循环体内部的代码执行完毕后,循环条件不会重新判断,而是直接执行下一次循环。这意味着循环体内部的代码无法直接更新循环条件所使用的变量的值。

这种情况可能会导致循环陷入无限循环,因为循环条件无法得到更新。为了避免这种情况,我们需要在循环体内部手动更新变量的值,以便在下一次循环时能够正确判断循环条件。

以下是一个示例代码,展示了在do while循环内变量值不更新的情况:

代码语言:txt
复制
int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 5);

在上述代码中,变量i的初始值为0,然后进入do while循环。循环体内部打印出i的值,并将i的值加1。然而,由于循环条件判断是在循环体执行完毕后进行的,所以i的值在判断循环条件时并没有更新。因此,循环将无限执行下去,打印出0的无限序列。

为了解决这个问题,我们可以在循环体内部手动更新变量的值,如下所示:

代码语言:txt
复制
int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 5);

在上述代码中,我们在循环体的最后更新了变量i的值,使得下一次循环时能够正确判断循环条件。这样,循环将在i的值达到5时结束。

总结起来,do while循环内变量值不更新的问题可以通过在循环体内部手动更新变量的值来解决,以确保循环条件能够正确判断。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 为什么不设计 do-while 循环结构?

在某些编程语言中,例如 C/C++、C#、PHP、Java、JavaScript 等等,do-while 是一种基本的循环结构。...在回答这个问题之前,让我们再仔细思考一下 do-while 语法可以解决什么问题,看看使用这种结构能带来什么好处? 最显而易见的好处是:do-while 语法保证了会先执行一遍循环体代码。...首先,Python 离底层应用编程太远了,就不用考虑汇编指令的优化了,同时,它也不涉及宏的使用。...也就是说,在保持原 while 循环语法不变的情况下,PEP-315 提议支持在 while 前面使用一个可选的 do 子句。...最后稍微总结一下,do-while 作为一种常见的循环结构,在其它语言中有所发挥,它甚至还发展出了 do {...} while (0) 的典型用法,但是,do-while 能够解决的几个问题要么在 Python

1.2K10

Java 中为什么不推荐在 while 循环中使用 sleep()

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么在循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...Demo { private static final boolean FLAG = true; public static void main(String[] args) { while...InterruptedException e) { throw new RuntimeException(e); } } // do...something }}上面的代码你可能会得到下面的警告:Call to ‘Thread.sleep()’ in a loop, probably busy-waiting// 循环中调用 sleep...可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统中的一个线程

1.6K30
  • C#基础02

    = == 六个 用来判断两个事物之间的比较关系 返回的值均为布尔型 布尔类型 自包含有真假两个值,false true(默认值是flase) 特别地注意:对于成员变量可以不赋初值,而方法内变量则必须需要赋初值...do-while 不论如何,循环体都先执行一遍,这是与while不同的地方。...格式: do { ​ 循环体; } while(循环条件); 调试 程序的调试,用来检测程序在通过编译后运行时出现的异常。...break continue break 结束循环 continue 跳出本次循环 可用于 while,do-while,for, switch 语句; 三元表达式 格式: 表达式1?...goto goto 语句,可实现从一个代码块跳到另一个代码块,非常灵活,代码跳跃较大,不便于阅读,所以不建议使用。 常量 const 常量名 = 常量值; 一经赋值,就不允许再次赋值。

    15100

    【C++ 程序设计入门基础】- 第3节-循环结构02

    查看运行结果 while、do while的区别 for、while的区别 1、 关于 for 语句省略判定条件时的案例 查看运行结果 2、关于 for 循环判定可以指定初始变量值,这个看结果体就知道...4、无法预知循环次数,或者循环更新不是规律的增减时,用while语句。...while、do while的区别 while语句是先判断循环条件,再决定是否执行循环体。 do while语句是先执行循环体,再判断循环条件,至少执行一次循环体。...如果循环体中包含continue,for语句跳到循环更新处,while语句直接跳到循环条件处。 无法预知循环次数,或者循环更新不是规律的增减时,用while语句。...拓展: 这里 for 循环内初始值,终止条件判定值以及循环更新值,这里可以根据实际场景设置多个变量值。 下一节,给大家讲解 C++ 中关于函数的用法。

    18510

    第三章:流程控制语句

    循环语句 理解:循环语句具有在某些条件下满足的情况下 ,反复执行特定代码的功能 循环结构分类: for循环 while循环 do-while循环 循环结构四要素 初始部分 循环条件部分...时,退出循环 ④可以有多个变量更新,用逗号分隔 3.2 while 循环 基本语法 语法格式 ①初始化部分 while(②循环条件部分){ ③循环体部分; ④迭代部分; } 执行过程:...3.3 do-while 循环 基本语法 语法格式 ①初始化部分; do{ ③循环体部分 ④迭代部分 }while(②循环条件部分); 执行过程:①-③-④-②-③-④-②-③-④-...-② 图示...: ​ 说明: 结尾while(循环条件)中循环条件必须是boolean类型 do{}while();最后有一个分号 do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的...循环的三个结构for、while、do-while三者是可以相互转换的。

    12210

    《JavaSE》---6.<基础语法(Java三大程序控制结构)>

    热烈欢迎大家在评论区进行讨论!!! 喜欢我文章的兄弟姐妹们可以点赞,收藏和评论我的文章。喜欢我的兄弟姐妹们以及也想复习一遍java知识的兄弟姐妹们可以关注我呦,我会持续更新滴,并且追求完整。...和 if 类似, while 下面的语句可以不写 { } , 不写的时候只能支持一条语句. 建议还是加上 { } 2....3.2 do while 循环(选学) 语法格式: do{ 循环语句; }while(循环条件); 先执行循环语句, 再判定循环条件,循环条件成立则继续执行,否则循环结束。...: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次 表达式2: 循环条件,满则循环继续,否则循环结束 表达式3: 循环变量更新方式 执行过程为:①②③④--->②③④--->②③④---...循环类似 1.for下面可以不写{},但不写只能执行一条,建议加上{} 2.for 后面不要多写 分号, 3.结束单趟循环用continue,结束整个循环用break 4.表达式1可以为空,可以在之前进行初始化

    7810

    3. 流程控制语句

    根据循环条件 , 重复的执行某段代码 有for , while , do-while​三种循环语句 补充:JDK5.0 提供了foreach​循环,方便的遍历集合、数组元素。...循环语句 理解:循环语句具有在某些条件​满足的情况下,反复执行​特定代码的功能。...循环结构分类 for 循环 while 循环 do -while 循环 循环结构四要素 初始化部分 循环条件部分 循环体部分 迭代部分 3.1 for循环 语法格式 for(初始化部分 ; 循环条件部分...时,退出循环 ④可以有多个变量更新,用逗号分隔 3.2 while循环 语法格式 : 先判断再执行 初始化部分 while(循环条件部分) { 循环体部分; 迭代部分; } ‍ 3.3 do-while...循环 语法格式 : 先执行再判断 初始化部分; do { 循环体部分; 迭代部分; } ‍ 4.

    12810

    Java程序设计(基础)- 流程控制

    循环结构 循环语句就是在满足一定条件的情况下反复执行某一个操作。包括while循环语句、do···while循环语句和for循环语句。  ...System.out.println(sum); } } do···while循环语句 do···while循环语句与while循环语句的区别是,while循环语句先判断条件是否成立再执行循环体...b--; } while(b == 8); } } 运行结果为: 这里,a、b都为10,先看while循环语句,进入while下语句块的条件是a == 8,很明显不成立,所以不执行...,结果中没有关于a的结果,然后再看do···while循环语句,先执行一次do后的语句块,输出“b == 10”,然后判断while条件b == 8不成立,循环结束,所以结果只有一个do···while...实际上break语句在for、while、do···while循环语句中,用于强行退出当前循环,为什么说是当前循环呢,因为break只能跳出离它最近的那个循环的循环体,假设有两个循环嵌套使用,break

    42520

    Java基础(五):流程控制语句

    同时,位置也是灵活的 当没有匹配的case时,执行default语句 二、循环语句 循环结构分类: for 循环 while 循环 do-while 循环 循环结构四要素: 初始化部分...④可以有多个变量更新,用逗号分隔 无限循环格式:for(;;) 格式的多样性 public class ForTest2 { public static void main(String[] args...) 3、do-while循环 语法格式: ①初始化部分; do{ ③循环体部分 ④迭代部分 }while(②循环条件部分); 执行过程: ①-③-④-②-③-④-②-③-④-…-② 说明: 结尾...while(循环条件)中循环条件必须是boolean类型 do{}while();最后有一个分号 do-while结构的循环体语句是至少会执行一次,这个和for和while是不一样的 循环的三个结构for...、while、do-while三者是可以相互转换的 4、关键字break和continue的使用 break:一旦执行,就结束(或跳出)当前循环结构 continue:一旦执行,就结束(或跳出)当次循环结构

    7510

    JAVA——流程控制语句

    下面在看一个最基本的循环——while,他的结构为: while( 布尔表达式 )//不能用“1”代替“true”  {   //循环内容 } 3.do…while循环 对于while...语句而言,如果不满足条件,则不能进入循环,有时候我们需要即使不满足条件,也至少执行一次,do…while就是这样 do {        //代码语句 }while(布尔表达式);        4.for...如果为false,循环终止,开始执行循环体后面的语句        3.执行一次循环后,更新循环控制变量        4.再次检测布尔表达式,循环执行上面的过程 for(初始化; 布尔表达式; 更新)...在for循环中,continue语句使程序立即跳转到更新语句。        在while或者do…while循环中,程序立即跳转到布尔表达式的判断语句。...default 在没有 case 语句的值和变量值相等的时候执行。default分支不需要 break 语句。

    89950

    ModelBuilder中的For循环和While循环

    鸽了这么久了的ModelBuilder教程,开始恢复更新了,嘤嘤嘤 现在开始讲迭代器,迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环。说的通俗点就是批量循环处理,简称批处理。...如果模型中已经存在一个迭代器,那么就没办法再添加迭代器了,只能嵌套一个子模型,在子模型里使用。 ? ?...ModelBuilder提供了四个大类,十二种迭代,在之后的文章中我会依次讲到,这次讲前两个,For循环和While 循环,本质上和编程中的For循环和While 循环工作原理完全相同 For循环,起始值到结束值按特定次数运行工作流...For循环初始值设置为10m,之后每次自加10m直至100m停止循环,c108是一段道路数据 ? ? 将值作为距离添加至缓冲区 ? ? 最后输出文件为防止名称一样被覆盖,采用行内变量替换 ? ?...然后将其作为输入值添加到while循环中 ? ? 最后的文件存储依旧使用行内变量替换 ? ? 运行结果如下 ? ? ? ? 最后,祝诸位 Merry Christmas!

    4.3K20

    ModelBuilder中的For循环和While循环

    鸽了这么久了的ModelBuilder教程,开始恢复更新了,嘤嘤嘤 现在开始讲迭代器,迭代是指以一定的自动化程度多次重复某个过程,通常又称为循环。说的通俗点就是批量循环处理,简称批处理。...如果模型中已经存在一个迭代器,那么就没办法再添加迭代器了,只能嵌套一个子模型,在子模型里使用。...ModelBuilder提供了四个大类,十二种迭代,在之后的文章中我会依次讲到,这次讲前两个,For循环和While 循环,本质上和编程中的For循环和While 循环工作原理完全相同 For循环,起始值到结束值按特定次数运行工作流...,采用行内变量替换 运行结果如下 While 循环,模型会一直运行到特定变量或条件变为 True 或 False 时为止。...然后将其作为输入值添加到while循环中 最后的文件存储依旧使用行内变量替换 运行结果如下

    21.5K60

    Java并发编程之CAS二源码追根溯源

    分析第13行为什么返回false: 在11行的时候,设置主内存的变量值V=1. 在12行后,更新为V=2020了。...如:三排四列) Vart4:默认就是1 Var5:获取到的主内存的值 Var5+var4:将要更新的值。 从源码,我们看到是do while语句。为什么不是while语句呢?...对比代码分析: 线程1在执行do后得到的值var5=1而不是0 然后while里面执行:var1和var2运算后的结果是0(工作区的值)。 因为0!...又到了do,获取在主内存最新数据是1.接着走while() 因为,var1,var2获取到工作区的值是1 var5也等于1.1=1,成立了,执行var5+var5=1+1=2,来更新主内存的数据后返回true...所以就是while(!true),也就是while(false)。退出循环,返回var5的值。

    93511

    【Java SE】逻辑控制

    执行流程: 先计算表达式的值 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束 当表达式的值没有与所列项匹配时,执行default 【注意事项】 1.多个case后的常量值不可以重复...3.1 while循环 while(循环条件){ 循环语句; } 循环条件为 true, 则执行循环语句; 否则结束循环. 3.2 break break 的功能是让循环提前结束. 3.3continue...continue 的功能是跳过这次循环, 立即进入下次循环. 3.4for循环 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行 表达式2: 循环条件,满则循环继续,否则循环结束...表达式3: 循环变量更新方式 for(表达式①;布尔表达式②;表达式③){ 表达式④; } 3.5 do while 循环 【基本语法】 do{ 循环语句; }while(循环条件); do while...循环最后的分号不要忘记 一般 do while 很少用到, 更推荐使用 for 和 while. 4.输入输出 4.1输出控制台 4.2 从键盘输入 使用 Scanner 读取字符串/整数/浮点数

    40020

    【Java SE语法篇】4.程序逻辑控制

    但是实际开发中我们不建议这么写....…while循环 基本格式: do{ 语句 }while(表达式); while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环; 而do...while...循环则是先直接进入循环体,执行循环内部,然后在执行 while 后的判断表达式,表达式为真,就会进行下一次,表达式为false,则不再继续循环。...执行流程: 在do...while 循环中先执行图上的“语句”,执行完语句,在去执行“判断表达式”,在判断表达式的结果是true,则继续循环,执行循环;判断表达式的结果false,则循环结束。...所以在do...while 语句中循环体是至少执行一次的,这是do...while 循环比较特殊的地方。

    10710

    1.5 流程控制语句

    1: 语句体1; break; case 常量值2: 语句体2; break; ......2、case的穿透性 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。...的和是:"+sum); } 4、do…while do…while循环格式 初始化表达式① do{ 循环体③ 步进表达式④ }while(布尔表达式②); do…while循环的特点...); } 5、for 和 while的区别 for 和 while 的小区别: 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用...6、break和continue区别 break 使用场景:终止switch或者循环 在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的 continue 使用场景:结束本次循环

    16020

    java_流程控制语句、权限修饰符

    1: 语句体1; break; case 常量值2: 语句体2; break; ......### case的穿透性 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。...④循环后,循环变量的变化情况 循环语句3--do...while 初始化表达式① do{ 循环体③ 步进表达式④ }while(布尔表达式②); 执行顺序:①③④>②③④>②③④...③具体执行的语句 ④循环后,循环变量的变化情况 循环语句的区别 for 和 while 的小区别: 控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用...原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。 在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

    45410
    领券