for循环语句详解

1 for循环语句的应用规则 

  C语言中的for循环语句不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。 

  1.1 for循环语句的格式 

  for(表达式1;表达式2;表达式3)语句; 

  这里边的“语句”就是循环体语句,若其中只有一条语句,可以不用花括号,若多于一条,则必须用花括号将这些循环体语句括起来。 

  1.2 for循环语句的执行过程 

  (1)先操作表达式1; 

  (2)操作表达式2,若其值为真(值为非0),则执行for语句中的循环体语句一次,然后执行下面第三步,若为假(值为0),则结束循环,转到第5; 

  (3)操作表达式3; 

  (4)转回上面第2步骤继续执行; 

  (5)结束循环,执行for语句下面的语句。 

  要注意表达式1只执行一次! 

  通常,表达式1用来为循环变量赋初值,表达式2用来设置执行循环的条件,表达式3用来改变循环变量的值。所以for语句的格式也可以这样描述: 

  for(循环变量赋初值;循环条件;循环变量增值)语句; 

  2 fowhile语句的编程对比 

  通过结合例子,如求sum=1+2+3++100的和,来分别看一下forwhile语句的编程效果。 

  首先用for循环语句来编程实现 

  main() 

   

  int i,sum=0;/*定义变量i,sum为基本整型,且为sum赋初值0*/ 

  for(i=1;i<=100;i++)sum=sum+i;/*for语句实现循环,循环体只有一句,可不用花括号*/ 

  printf(sum=%d,sum); /*退出循环后的语句,即输出sum的值*/ 

  

  再用while语句进行编程实现 

  main() 

  { 

  int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值10*/  

  while(i<=100) /*执行循环体的判断语句*/ 

  { 

  sum=sum+i; /*将变量i与其前各项之和累加*/ 

  i++; /*循环变量增加1*/ 

  } /*循环体多于一个语句时要用花括号括起来*/ 

  printf(sum=%d,sum); /*退出循环,输出sum的值*/ 

  } 

  对比以上程序,显然我们发现,for语句在编程语句上更简单、方便,编程效率更高。而while语句在编程过程中,要书写更多的语句。 

  3 for语句的深入应用 

  (1)for语句一般形式中的表达式1可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1,其后的分号不能省略。如for(;i<=100;i++){}; 

  (2)表达式2也可以省略,即没有判断循环的条件,此时编译系统将循环条件默认为真,循环将无终止地循环下去,这种情况可以在循环体中设置条件控制循环。 

  例如:for(i=1;;i++)sum=sum+i;为死循环语句,若使其实现1+2+3++100后结束循环,则可以在循环体中加上控制条件: 

  for(i=1;;i++){if(i>100)break;sum=sum+i;} 

  (3)表达式3也可以省略,即没有设置用来改变循环变量的语句,循环将无终止地循环执行下去,但此时程序设计者可以在循环体中加上用来改变循环变量的语句。如: 

  for(i=1;i<=100;) 

  {sum=sum+i; 

  i++;/*循环变量增加1,改变循环变量的值*/ 

  } 

  另外表达式3不一定都要写成如i++这样的形式,要根据循环变量的实际变化规律而定,如可以写成这样的形式:i=i+2i=i*3…。 

  (4)可以省略表达式1和表达式3,只有表达式2即只给循环条件。此时可以在程序的适当位置对循环变量赋初值和改变循环变量的值。如: 

  int i=1,sum=0; /*定义变量i,sum为基本整型,且为它们分别赋初值10*/ 

  for(;i<=100;) 

  sum=sum+i++; /*改变循环变量的值*/ 

  (5)三个表达式都可以省略。 

  如:for(;;)语句; 

  即不设初值,没有判断条件(认为表达式2为真值),循环变量不增值,将无终止的执行循环体。在实际应用中程序设计者可以将这三个内容分写在程序的适当位置。 

  如: 

  main() 

  { 

  int i=1,sum=0; /*定义变量赋初值10*/  

  for(;;) 

  {if(i>100);{sum=sum+i++;}}/*为循环设置控制条件,改变循环变量的值*/ 

  printf(sum=%d,sum); 

  } 

  (6)表达式1也可以是设置循环变量初值的赋值表达式,也可以是与循环变量无关的其他表达式.且可以有多个,此时用逗号将其分隔开,: 

  for(i=1,sum=0;i<=100;i++);/*可以为多个变量赋初值,用逗号分隔*/ 

  { 

  sum=sum+i; 

  } 

  (7)当循环的次数不确定时,表达式2即控制循环的条件语句,其判断对象就不能是循环变量了。如: 

  已知s=1+2+3++n,求满足s>=1000的最小n值。 

  这个程序的循环执行的条件为“s<1000,退出循环时n的值不知道是多少,所以循环条件的判断对象应该是s,其程序可以如下编写: 

  main() 

  { int n,s; /*定义变量赋不赋初值*/  

  for(n=1,s=0;s<1000;n++) /*for语句实现循环*/  

  s=s+n; /*将变量n与其前各项之和累加*/  

  printf(n=%d,n-1); /*,输出n的值*/  

   

  用while语句可以这样编写: 

  main() 

  {int n=1,s=0;  

  while(s<1000)  

  s=s+n++;  

  printf(n=%d,n-1);  

   

  上面这个程序循环的次数在编写程序时不能确定,遇到这种情况人们首先想到的是用while语句来实现循环,以为for语句无法实现,其实这是一种误解。在BASIC语言中for循环只能用在循环次数确定的循环当中,C语言中for语句格式却有其特殊性,而应用更具灵活性。 

 

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java的for循环语句是一种用于重复执行一段代码块的控制结构。 for循环在Java中有两种常见的形式:for-each循环和传统的for循环。 for-each循环是一种简化的循环语法,用于遍历数组或集合中的元素。它的语法形式如下: ``` for (元素类型 变量名 : 数组或集合) { // 执行代码块 } ``` 其中,元素类型是指数组或集合中元素的类型,变量名是用来表示当前遍历到的元素的变量名。 例如,下面的代码演示了使用for-each循环打印数组中的元素: ```java int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); } ``` 输出结果为: ``` 1 2 3 4 5 ``` 传统的for循环在Java中也非常常见,它的语法形式如下: ``` for (初始化语句; 循环条件; 更新语句) { // 执行代码块 } ``` 其中,初始化语句用于初始化循环变量,循环条件是一个布尔表达式,当为true时循环继续执行,更新语句用于更新循环变量的值。 例如,下面的代码演示了使用传统的for循环打印表1到表10的数字: ```java for (int i = 1; i <= 10; i++) { System.out.println(i); } ``` 输出结果为: ``` 1 2 3 4 5 6 7 8 9 10 ``` 此外,Java的for循环还支持嵌套循环,即在一个循环语句内部嵌套另一个循环语句。例如,下面的代码演示了使用嵌套for循环打印表1到表3的数字组合: ```java for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { System.out.println(i + " " + j); } } ``` 输出结果为: ``` 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 ``` 以上是Java中for循环语句的基本用法和示例。无论是for-each循环还是传统的for循环,都可以根据具体的需求选择使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Java编程教程】详解 Java for 循环语句](https://blog.csdn.net/jiangjun020326/article/details/130547835)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值