首页
学习
活动
专区
工具
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语句大多数情况下都是可以互相替换的。 ? 最后的话 相信你学到这里或多或少都对循环有了一定的了解,想要更好的理解循环,建议多看几遍哦。

66430

校长讲堂第五讲

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

43931
  • 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 我是1') break case 2: alert('我是2') break case 3: alert('我是3')

    95130

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

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

    67530

    【C语言】操作符

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

    10510

    语法分析器(Parser)的实现

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

    1.9K30

    c语言操作符万字超详解

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

    17910

    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

    javaScript 基础语法

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

    92710

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

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

    52410

    【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,...大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、、条件运算符、赋值运算符

    28010

    C语言:操作符详解

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

    18310

    一行能装逼的 JavaScript 代码

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

    1.1K40

    C语言结构

    操作符 操作符的属性 优先级  1. 如果⼀个表达式包含多个运算符,哪个运算符应该优先执行,各种运算符的优先级是不⼀样的。 2. 记住常用的几个操作符优先级即可。 1.圆括号( () ) 2....如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符是左结合,还是右结合,决定执行顺序。 2....大部分运算符是左结合(从左到右执行),少数运算符是右结合(从右到左执行),比如赋值运算符( = )。 关系操作符 1.( >  =  <=  ==  !=  )  2....循环语句中的 break 是用于终止循环的,不管循环还需要循环多少次,只要执行到了 break ,循环就彻底终止。 2....如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

    4600

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

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

    50920

    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。 为什么要讲这种看起来莫名其妙的代码?

    3.4K54

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

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

    76960
    领券