for和while循环之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 10 可能 2024
Anonim
在 C 语言里,For 循环和 While 循环的差别是什么?
视频: 在 C 语言里,For 循环和 While 循环的差别是什么?

内容


在C ++和Java中,for循环,while循环和do-while循环的迭代语句允许重复执行指令集,直到条件为true为止,并在条件变为false时终止。迭代语句中的条件可以在for循环中预定义,也可以在while循环中进行开放式。

C ++暗示有几种“ for”循环变体,以提高其适用性,功能和灵活性。例如,for循环允许我们在循环内使用多个变量来控制它,并使用带有for循环的converge函数。相反,使用while循环时,我们不能使用很多变体,而必须使用标准语法。

for和while循环之间存在一些主要区别,将在比较表的帮助下进行进一步说明。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础对于
宣言for(初始化;条件;迭代){
// for循环的主体
}
而(条件){
陈述; //循环体
}
格式初始化,条件检查,迭代语句都写在循环的顶部。在循环的顶部仅执行初始化和条件检查。
采用仅当我们已经知道迭代次数时,才使用for循环。while循环仅在迭代次数未知时使用。
条件如果条件未放入for循环中,则循环迭代无限次。如果条件未放在while循环中,则将提供编译错误。
初始化在for循环中,一旦完成初始化就永远不会重复。在while循环中,如果在条件检查期间完成了初始化,则每次循环迭代时都会完成初始化。
迭代语句在for循环中,迭代语句写在顶部,因此,仅在执行循环中的所有语句之后才执行。在while循环中,迭代语句可以写在循环中的任何位置。


for循环的定义

在Java中,有两种形式的 对于 循环。第一种形式是“传统”形式,第二种形式是“ for-each”形式。

句法

传统的for循环语句的一般形式。

for(初始化;条件;迭代){// for循环的主体}

  • 初始化 – for循环的循环控制变量的初始化在循环的第一次迭代期间仅执行一次。在这里,循环控制变量被初始化,有时如果循环变量在程序中的任何地方都没有再次使用,而仅用作循环的控制变量,那么它会在“ for”循环中被声明和初始化。
  • 条件 –每次循环时,都会执行“ for”循环的条件。
  • 增量和迭代–迭代语句是增加或减少循环控制变量的表达式。

每当执行循环时,都会首先执行其初始化条件。然后检查条件。如果满足条件,则执行循环主体,然后执行迭代语句。然后再次检查条件,以了解循环是进一步迭代还是终止。

在Java中,初始化语句和迭代语句可以包含多个语句。每个语句之间用逗号分隔,在Java中,逗号是分隔符,而在C ++中,“逗号”是可在任何有效表达式中使用的运算符。

for-each循环及其语法

“ for-each”形式是增强的for循环。 for-each循环的一般形式如下。

for(类型iter_variable:集合)语句块

在此,“类型”指定迭代变量的类型,然后是迭代变量。迭代变量将从集合变量中接收元素。该类型必须与存储在collection变量中的元素的类型相同。 for循环的for-each形式从开始到结束按顺序访问值使循环的迭代自动化。

for循环使用各种类型的集合。让我们以数组作为集合来讨论它。

公共类Main {公共静态void main(String args){int array = {10,20,30,40,50,60}; int add = 0; for(int c:array){System.out.ln(“ c中的值” + c);加=加+ C; } System.out.ln(“数组元素的附加元素为” + add); }} // // c 10的输出值c 20的值c 30的值c 40的值c 50的值c 50的值c 60数组元素的加数是210

在这里,“ c”是一个迭代变量;它从数组中从数组的最低索引到最高索引一次接收一个值。在这里,循环迭代直到检查了数组的所有元素。通过使用“ break”可以终止两者之间的循环。但是,迭代变量的更改不会影响数组,因为它只是一个只读变量。


while循环的定义

循环是C ++和Java中可用的最基本的循环。 While循环的工作在C ++和Java中都相似。

句法

while循环的声明如下

while(condition){语句; //循环体}

while循环首先检查条件,然后执行语句,直到while循环中的条件变为true。 while循环中的条件可以是任何布尔表达式。当表达式返回任何非零值时,则条件为true;如果表达式返回零值,则条件为false。

如果条件为真,则循环会自行迭代,如果条件为假,则控制权将立即转到代码的下一行,紧随循环。语句或主体循环可以是空语句,也可以是单个语句或语句块。

让我们讨论while循环的工作方式。在下面的示例中,代码将为1到10。

//示例在Java中。公共类Main {公共静态void main(String args){int n = 0; while(n <10){n ++; System.out.ln(“ n =” + n); }}} //输出n = 1 n = 2 n = 3 n = 4 n = 5 n = 6 n = 7 n = 8 n = 9 n = 10

在这里,“ n”的初始值为0,这使得while循环中的条件成立。然后,控件进入while循环的主体,并根据while循环的主体中的第一条语句将“ n”的值递增。值“ n”被编辑,然后控件在while循环中返回到条件,现在“ n”的值再次为1,它满足条件,并且循环的主体再次执行。这一直持续到条件为真为止,一旦条件变为假,则循环终止。

与“ for”循环一样,“ while”循环也可以在循环顶部(即在条件检查期间)初始化控制变量。

//例如,while(((ch = getchar())!= A){System.out.ln(“输入字母” + ch); }

在这里,控制变量“ ch”被初始化,并且循环的条件在循环的顶部被验证。

注意:

可能是for循环或while循环,如果循环体内只有一个语句,则在这种情况下不需要花括号。

  1. 对于 循环,初始化,条件检查以及迭代变量的递增或递减仅在循环的语法中明确完成。反对,在 循环我们只能初始化和检查循环语法中的条件。
  2. 当我们知道在执行循环时必须进行的迭代次数时,我们使用 对于 环。另一方面,如果我们不知道循环中必须进行的迭代次数,则可以使用 环。
  3. 如果您无法放入条件声明 对于 循环,将导致循环的无限迭代。相反,如果您未能将条件语句放入 循环将导致编译错误。
  4. 语法中的初始化语句 对于 循环在循环开始时仅执行一次。相反,如果 循环使用其语法携带初始化语句,然后while循环中的初始化语句将在每次循环时执行。
  5. 中的迭代语句 对于 for主体执行后,循环将执行。相反,迭代语句可以写在主体的任何位置 因此,在while循环的主体中执行迭代语句之后,可能会执行一些语句。

结论:

for循环和while循环都是迭代语句,但是都有各自的特色。 for循环确实在循环主体的顶部具有其所有声明(初始化,条件,迭代)。相反,在while循环中,只有初始化和条件位于循环主体的顶部,并且迭代可以写在循环主体的任何位置。