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

为什么我的“while”循环没有结束?是由于运算符的优先级,还是其他原因?

“while”循环没有结束可能是由于以下原因之一:

  1. 条件表达式始终为真:在“while”循环中,条件表达式的结果决定了循环是否继续执行。如果条件表达式始终为真,循环将无法结束。请检查条件表达式是否正确,并确保在循环体内部更新循环条件,以便在满足特定条件时退出循环。
  2. 循环体内部没有改变循环条件:如果循环体内部没有改变循环条件的值,循环将变成一个无限循环。请确保在循环体内部更新循环条件,以便在满足特定条件时退出循环。
  3. 运算符的优先级问题:如果在条件表达式中使用了多个运算符,可能会导致运算符的优先级问题。请确保使用括号来明确指定运算符的优先级,以便正确计算条件表达式的结果。
  4. 循环体内部发生了异常:如果循环体内部发生了异常,并且没有适当地处理异常,循环可能无法正常结束。请确保在循环体内部适当地处理异常,以避免循环无法结束。

总结起来,要解决“while”循环没有结束的问题,需要仔细检查条件表达式是否正确、循环体内部是否正确更新循环条件、是否使用了适当的括号来明确指定运算符的优先级,并确保循环体内部没有发生未处理的异常。

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

相关·内容

疫情之下,循环之路开启

下面来一一介绍这三位光杆司令(While,do while,for) NO.1 首先登场我们while,它是一个英文单词独挡一面啊。...前面写过一篇文章关于while和do while文章,见下: 深探 while 与 do while 注:用关系运算符和表达式比较大小 循环经常要用到测试表达式来作比较,这样表达式称为关系表达式...出现在关系表达式中间运算符叫做关系运算符。相关关系运算符如下: ? 既然说到关系运算符,那我们来讲讲运算符优先级 关系运算符优先级比算术运算符低,比赋值运算符高。...还有就是在许多应用中,要求在一开始不满足测试条件时就直接跳过整个循环。 我们平常用得最多还是入口条件循环,那么在入口条件循环中我们该如何选择使用for语句还是while语句呢?...这个就取决于个人喜好啦,原因两者可以互补,for语句和while语句大多数情况下都是可以互相替换。 ? 最后的话 相信你学到这里或多或少都对循环有了一定了解,想要更好理解循环,建议多看几遍哦。

66230

校长讲堂第五讲

,但表达式中括号过度就会难以理解,因此最好还是记住 C 中优先级。...转换一元运算符,并且和其他一元运算符具有相同优先级。一元运算符右结合,因此*p++表示*(p++),而不是 (*p)++。 在接下来真正二元运算符。...还有就是六个关系运算符并不具有相同优先级:==和!=优先级其他关系运算符要低。...这很容易理解,因为逗号通常在需要表达式而不是语句时候用来替代分号。 赋值另一种运算符,通常具有混合优先级。例如,考虑下面这个用于复制文件循环while(c = getc(in) !...而实际效果却大不相同。 C 中逻辑运算符优先级具有历史原因。B语言——C语言 前辈,具有和 C 中&和|运算符对应逻辑运算符

43631
  • JavaScript 第二天

    alert(`计算之后圆面积: ${3.14 * num1 * num1}`) alert(`计算之后圆面积: ${num2}`) 赋值运算符: 对变量进行赋值运算符, 使用这些可对变量赋值时快速操作...学过赋值运算:= 将等号右边值赋予给左边, 要求左边必须一个容器 其他赋值运算符: +=, -=, *=, /=, %=, let num = 10 , num加5 赋值写就是: num +=...、||: 左边为true就短路 原因:通过左边能得到整个式子结果,因此没必要再判断右边 运算结果: 无论&&还是|| ,结果都是最后被执行表达式值,一般用在变量赋值 // 五个短路: false 0...== 0) 运算符优先级: 一元运算符逻辑非优先级很高 逻辑与比逻辑或优先级高 图片 // a为false 此时发生了逻辑与中断 let a = 3 > 5 && 2 < 7 && 3 ==...('1') break case 2: alert('2') break case 3: alert('3')

    94630

    EasyC++20,C++中自增与自减

    作者 | 梁唐 大家好,梁唐。 这是EasyC++系列第20篇,简单聊聊C++当中自增与自减。...自增与自减 基本用法 自增与自减C++当中两个使用频率非常高运算符,不仅在循环当中用到,在日常代码当中也经常使用。 甚至C++这个名称由来都和自增运算符有关,表示C语言升级版。...除了分号之外,完整表达式末尾也是一个顺序点。 完整表达式概念有点费解,C++ Primer中定义是不是另一个更大表达式子表达式,比如while循环检测语句就是一个完整表达式。...C++当中规定,前缀运算符和解引用运算符优先级相同,按照从右到左方式结合,后缀运算符优先级更高,从左至右。 这意味着*++pt表示先执行指针自增操作,也就是移动一位之后,再解引用。...x=*pt++由于后缀符优先级更高,意味着先执行指针移动,再解引用。如果大家实在搞不清楚的话,可以使用括号。

    66130

    【C语言】操作符

    1.1 2进制转10进制 其实10进制123表示一百二十三,为什么这个值呢?...7.1 优先级 优先级指的是,如果⼀个表达式包含多个运算符,哪个运算符应该优先执行。各种运算符优先级不一样。...7.2 结合性 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符左结合,还是右结合,决定执行顺序。...运算符优先级顺序很多,下面部分运算符优先级顺序(按照优先级从高到低排列),建议大概记住这些操作符优先级就行,其他操作符在使行时候查看下面表格就可以了。...( 等) • 赋值运算符( = ) 由于圆括号优先级最高,可以使⽤它改变其他运算符优先级 8.

    10110

    c语言操作符万字超详解

    那么从原码得到补码方式就是取反加一。 从补码得到原码方式就是加一取反,但实际上由于是二进制,所以对补码取反加一也能得到原码。 对于整形来说:数据存放内存中其实存放补码。 为什么呢?...结构成员访问操作符 结构体 C语言已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够,假设想描述学生,描述一本书,这时单一内置类型不行...结合性 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符左结合,还是右结合,决定执行顺序。...运算符优先级顺序很多,下面部分运算符优先级顺序(按照优先级从高到低排列),建议大概 记住这些操作符优先级就行,其他操作符在使用时候查看下面表格就可以了。...、 > 等) • 赋值运算符( = ) 由于圆括号优先级最高,可以使用它改变其他运算符优先级

    15010

    语法分析器(Parser)实现

    在上面的例子中,传入ParseBinOpRHS表达式“a”,当前语元“+”。 传入ParseBinOpRHS优先级表示该函数所能处理最低运算符优先级。...由于无效语元(这里指不是二元运算符语元)优先级都被判作-1,因此当语元流中所有二元运算符都被处理完毕时,该检查自然不会通过。...在本例中,当前运算符“+”,下一个运算符也是“+”,二者优先级相同。...现在,主表达式右侧binop“*”,由于“*”优先级高于“+”,负责检查运算符优先级if判断通过,执行流程得以进入if语句内部。...该调用会完整解析出上述示例中“(c+d)*e*f”,并返回构造出AST节点,这个节点就是“+”表达式右侧RHS。 最后,while循环下一轮迭代将会解析出剩下“+g”并将之纳入AST。

    1.8K30

    c语言里怎么设立优先级,细说C语言优先级

    大家好,又见面了,你们朋友全栈君。 0. 为什么要掌握优先级 想想这两个问题: a. 读别人代码,遇到优先级问题看不懂,怎么办? b. 一堆括号,美观吗?...优先级 1.1 优先级图表 优先级最高者不是真正意义上运算符,包括:数组下标,函数调用,结构体成员选择符。 单目运算符优先级次之。(!...= ==)再次之, 接着运算符(& ^ | ),逻辑运算符(&& ||) 条件运算符(?: 三目), 赋值运算符(= …)。 任何一个逻辑运算符优先级低于任何一个关系运算符。...移位运算符优先级比算数运算符要低,但是比关系运算符要高。 1.2 运算符实例 a. while (c = getc(in) !...= EOF) putc(c, out) 循环意思复制一个文件到另一个文件。但是由于!

    1.9K20

    C语言三剑客之《C陷阱与缺陷》一书精华提炼

    接下来一元运算符。它们具有真正运算符最高优先级由于函数调用比一元运算符绑定得更紧密,你必须写(*p)()来调用p指向函数;*p()表示p一个返回一个指针函数。...转换一元运算符,并且和其他一元运算符具有相同优先级。一元运算符右结合,因此*p++表示*(p++),而不是(*p)++。在接下来真正二元运算符。...还有就是六个关系运算符并不具有相同优先级:==和!=优先级其他关系运算符要低。在逻辑运算符中,没有任何两个具有相同优先级。...出于这个原因,下面这种将数组x中前n个元素复制到数组y中方法不可行: i = 0; while(i < n) y[i] = x[i++]; 其中问题y[i]地址并不保证在i增长之前被求值...另一种情况出于同样原因会失败: i = 0; while(i < n) y[i++] = x[i]; 而下面的代码可以工作: i = 0; while(i < n) { y[i]

    1.5K10

    Java 小白成长记 · 第 3 篇《运算符与控制流》

    其中,最简单规则就是乘法和除法在加法和减法之前完成。程序员经常都会忘记其他优先级规则,所以应该用括号明确规定运算顺序。...很多书中都会给出运算符优先级表,其实在实际开发中大家都会用括号去显示定义运算顺序,所以此处就不贴运算符优先级表了,意义并不大,没必要强行死记硬背。 ③ 赋值 运算符赋值由符号 = 完成。...例如, 以下代码: int n = 12; n ++; // n =13 由于这些运算符会改变变量值,所以它们操作数不能数值。例如, 4 ++ 就不是一个合法语句。...原因:Object 类默认 equals() 行为比较对象引用而非具体内容。虽然 v1 和 v2 内容相等,但是它们并不指向同一个地址。...对于任何使用 break语句代码都需要检测循环正常结束, 还是由 break 跳出。 Ⅱ continue 与 break 语句一样, 它将中断正常控制流程。

    51810

    javaScript 基础语法

    已经把代码打包放到文章下面了。...(–a)后–(a–) 无论–a 还是 a–都会立即使原变量自减 1 不同–a 和 a–不同, –a 变量新值(自减后值) a–变量原值(自减前值) 2.2 逻辑运算符...JS 中运算符也是具有优先级, 比如 先乘除 后加减 先与 后或 具体优先级可以参考优先级表格,在表格中越靠上优先级越高, 优先级越高越优先计算,优先级相同,从左往右计算。...3.3 循环语句 通过循环语句可以反复执行某些语句多次 while 循环 while(条件表达式){ 语句... } 执行流程: while 语句在执行时,会先对条件表达式进行求值判断, 如果判断结果为...false,则终止循环 如果判断结果为 true,则执行循环循环体执行完毕,继续对条件表达式进行求值判断,依此类推 do…while 循环 do{ 语句... }while(条件表达式) 执行流程

    91610

    【C语言】基本语法知识&&C语言函数&&操作符详解

    7.2 循环结构 C语言中提供了三种循环语句 while循环 for循环 do...while循环 7.2.1 while循环 while语句可以在条件表达式为真的情况下,循环执行指定一段代码,直到表达式不为真的时结束...循环 do while循环语句一种循环控制语句 在执行循环体之前先判断循环条件。...与while循环不同,do while循环保证循环体至少执行一次。...%zd 10.5.5 按位取反操作符 ~ ~作用是全部取反,无论符号位还是其他位,比如: 10.5.6 自增自减操作符 -- ++ ++一种自增1操作 自增分为: 前置++:即++a,...大多数运算符结合性从左到右,只有三个优先级从右至左结合,它们单目运算符、、条件运算符、赋值运算符

    21010

    C语言:操作符详解

    (a > 0) { //业务处理 a = get_val(); count_val(a); } 我们发现while循环之前代码和while循环里面的代码有点冗余了,所以我们可以用逗号表达式来修改一下...12.1 优先级 优先级指的是,如果⼀个表达式包含多个运算符,哪个运算符应该优先执⾏。各种运算符优先级 不⼀样。...由于乘法 优先级⾼于加法,所以会先计算 4 * 5 ,⽽不是先计算 3 + 4 。...12.2 结合性 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符 左结合,还是右结合,决定执⾏顺序。.../ ) • 加法( + ),减法( - ) • 关系运算符( 等) • 赋值运算符( = ) 其他操作符在使⽤时候查看下⾯表格就可以了。

    16210

    一行能装逼 JavaScript 代码

    为什么一堆符号运算结果竟然能两个字符,而且恰巧还是个sb! 其实靠js类型转化一些基本原理,本篇就来揭密”sb”如何炼成。...一、js运算符优先级 首先要运用到第一个知识就是js运算符优先级,因为这么长一段运算看的人眼花,我们必须得先根据优先级分成n小段,然后再各个击破。优先级排列如下表,优先级从高到低: ?...而且中括号优先级还是最高哦。 二、js类型转化 预处理结束,接下来需要运用就是JavaScript类型转化知识了。我们先说说什么情况下需要进行类型转化。...如果结果primitive,返回 否则,抛出TypeError 如果 PreferredTypeString,步骤2跟3互换,如果PreferredType没有,Date实例被设置成String,其他都是...继续往上走,子表达式14:[~+[]] 其实把15、和16原理用上就非常明显了,答案[-1] 继续来求子表达式9,此刻它已变成:-2*[-1],有稍许不一样,不过没关系,我们还是按照规则来,运算符乘号

    1.1K40

    C语言基础知识入门(大全)「建议收藏」

    7.运算符大比拼之优先级比较 各种运算符顺序: 优先级别为1优先级最高,优先级别为10优先级别最低。 十四、分支结构 1.简单if语句 C语言中分支结构语句中if条件语句。...2.do-while循环 C语言中do-while循环,一般形式如下: do-while循环语句语义: 它先执行循环执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假...3.三种循环比较 while, do-while和for三种循环在具体使用场合上有区别的,如下: 在知道循环次数情况下更适合使用for循环; 在不知道循环次数情况下适合使用while或者do-while...由于C语言没有检查数组长度改变或者数组越界这个机制,可能会在编辑器中编译并通过,但是结果就不能肯定了,因此还是不要越界或者改变数组长度 3.数组作为函数参数 数组可以由整个数组当作函数参数,也可以由数组中某个元素当作函数参数...大家初学 C 语言很多 coredump 错误都是类似原因造成。 所以最后输出 5。 为什么要讲这种看起来莫名其妙代码?

    2.6K42

    Python0基础(中)——期末不挂科

    文章目录 前言 python入门进阶知识——运算 运算符运算符 逻辑运算符 成员运算符 身份运算符 运算符优先级问题 字符串加强 难点 内置函数 列表 常用操作 元组 字典和集合 条件控制 if...嵌套 循环语句 break和continue和else 最后 前言 本来不想肝了,但是看到了这个, 还有这几个白嫖怪, 虽然不知道你谁,但是还是感谢,今天熬个夜来再肝一篇,秋名山路很长...python入门进阶知识——运算 运算符 这个知识难亦或是不难,看你想要学到什么程度了,如果期末不挂科的话,靠上一篇就已经够了,但是绩点嘛,还是要学一点运算符 几乎每个语言都是一样,所以说还是想啰嗦一下..., 运算符优先级问题 这个考察形式有点像当年奥赛初赛考察形式,就是阅读程序写答案题,不能用电脑啊!...最后 还是老样子,原创不易,求个三连,感谢各位支持,那个陪你头秃,陪你变强小码民!

    50520

    python学习第四讲,python基础语法之判断语句,循环语句

    1 逻辑运算 2 条件运算符. 3.赋值运算符 4.运算符优先级 (了解) 三丶循环语句详解 1.了解程序执行流程 2.while循环语法以及使用 3.循环中break与continue关键字使用...c a 4.运算符优先级 (了解) 以下表格算数优先级由高到最低顺序排列 运算符 描述 ** 幂 (最高优先级) * / % // 乘、除、取余数、取整除 + - 加法、减法 >=...= 等于运算符 = %= /= //= -= += *= **= 赋值运算符 not or and 逻辑运算符 小技巧 运算符优先级,掌握以下比较好.但是大部分程序在编程时候.掌握不好优先级.那么我们只需要记住...—— 根据条件判断,决定执行代码 分支 循环 —— 让 特定代码 重复 执行 2.while循环语法以及使用 有的时候,我们想让我们程序执行一百遍重复操作代码....注意: while 语句以及缩进部分一个 完整代码块 死循环产生: 由于程序员原因,忘记 在循环内部 修改循环判断条件,导致循环持续执行,程序无法终止!

    76660

    小闫陪你入门 Java (三)

    . —— Epictetus 首先,对自己说想要成为什么样的人;然后做一切必须做。 " 7.Java 运算符 7.1算术运算符 加减乘除与 Python 中一致,分别为 +-*/。取余为 %。...运算符优先级如果代码中包含多种运算符,那么优先执行谁问题。...下面附网上一个表格,具有最高优先级运算符在表最上面,最低优先级在表底部,以供大家忘记时进行查看: 类别 操作符 关联性 后缀 () [] . (点操作符) 左到右 一元 + + - !...(如判断条件不满足,while 循环不会执行,但是 do...while 循环会执行一次)先来看起语法: do { // 代码语句 }while( 布尔表达式 ) 其实从代码中即可分析出原因,因为代码块先执行...(a<0); } } 上例中 while 判断条件不满足,如果 while 循环的话则不会执行;而上述例子大家可以进行验证,会返回 10。

    50320
    领券