for循环是普遍应用与各种计算机语言的一种循环方式。

一般情况下,

for循环规则:for(条件一;条件二;条件三)

条件一为满足条件,也就是条件一为1时,进入这个for循环。条件二为循环条件,也就是说当条件二不满足时继续循环。条件三为循环递增条件,里面罗列循环节递增的方式。for循环在实际运行的时候是:首先判断条件一是否为1,为1时进入循环内的下一步,为0跳过整个for循环。其次判断条件二是否为1,为1时进入否循环下属的({}包围部分的内容)循环节,不论循环节语句是否存在,运行完毕后运行条件三,然后再次运行条件二,一直到条件二为0.

技巧:1)三个都可以省略,只要保证括号()里有足够两个分号;就可以。省略默认条件是1,继续执行。极端条件下的语句for(;;)等同于while(1),为无条件进入循环。

2)条件一,不但可以用于设定循环变量的初始值,也可以用于设定循环开始前的变量的初始值。比如:i=m=0,j=n=1作为条件一,这样就为开始进入循环设定了4个变量,而其中的循环变量只是其中某一个,或者几个。

3)条件二,是退出循环的条件。条件二正常情况下是一个判断条件,当判断结果为1,或者说符合要求时,继续循环。今天在网友帮助下,认识到当条件二不是一个判断,而是一个返回值的时候,如果返回值是0,同样会退出循环。这样就提供了某些情况下的特殊退出方法。

举例:

 1 #include<stdio.h>
2
3
4

5 int main()
6
7 {
8
9 char ch , a[1024] ;
10
11 int i , j , k , m , n ;
12
13
14
15 printf("请输入一个英文句子:") ;
16
17 for(i = m = 0 , j = n = 1 ; (ch = getchar()) != '\n' ;) {
18
19 if(ch != ' ') {
20
21 if(j == 1) m ++ ;
22
23 a[i ++] = ch ;
24
25 a[i] = '\0' ;
26
27 j ++ ;
28
29 if(j > n) n = j ;
30
31 } else {
32
33 if(j > 1) { // 只有字符串之间的单个空格有效
34
35 j = 1 ;
36
37 i ++ ; // 保护上个字符串末尾的 '\0'
38
39 }
40
41 }
42
43 }
44
45 char result[m][n] ;
46
47 for(i = k = 0 ; i < m ; i ++) for(j = 0 ; (result[i][j ++] = a[k ++]) ;) ; // 这里绝不可以只是简单地按照每个字符串 n 个字符进行分割和复制
48
49 printf("分割结果已存放到result[%d][%d]的二维数组中。。。。。\n" , m , n) ;
50
51 printf("现在依次打印每个单词:\n") ;
52
53 for(k = 0 ; k < m ; k ++) printf("%s\n" , result[k]) ;
54
55 }

上面代码中第47行,内循环的条件二是一个赋值语句:result[i][j++]=a[k++],当被如遇的值a[k]=’\0’的时候,会退出循环。

4)在上一个代码举例里,使用4次for循环,其中2次循环都没有使用条件三循环增量,所有的循环都是在其他部位进行计算过程中实现的变量增量。

C语言下for循环的一点技巧总结的更多相关文章

  1. 讲解下for循环的用法,加深记忆

    引子 这是一段很简单的代码,但是即便是这么简单的东西,这里我们还是需要说一下. 关于for循环整个执行流程就是,先执行var i=10,然后到了第二个语句,判断10是否大于0,很明显为true,所以此 ...

  2. Kotlin 语言下设计模式的不同实现

    偶然在 Github 上看到 dbacinski 写的 Kotlin 语言下设计模式的不同实现(这里的不同是相对于 Java 语言的),有些实现非常好,但是有些实现的例子不是很赞同.所以自己写了 Ko ...

  3. UVA 133“The Dole Queue”(循环报数处理技巧)

    •参考资料 [1]:紫书P82 •题意(by紫书) 按照被选中的次序输出这 n 个人的编号: 如果A和B选中的是同一个人,输出一个这个人的编号: 输出格式:输出的每个编号占3个字节,不够3个字节在前面 ...

  4. C语言利用for循环打印菱形

    C语言利用for循环打印菱形(高度为奇数) 这次用的方法是上下部分分开打印,先打印上部分,再打印下部分. 先举个简单的例子打印,再改进代码,登堂入室从而理解. 例:打印一个高度(高度必须为奇数)为 5 ...

  5. [08 Go语言基础-for循环]

    [08 Go语言基础-for循环] 循环 循环语句是用来重复执行某一段代码. for 是 Go 语言唯一的循环语句.Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环 ...

  6. js 递归下的循环

    的递归下的循环不能使用forEach  可以使用for代替 错误写法 // 获取完整名字 var getFullName = function(code, resultName) { if (code ...

  7. XP/Win7下QTP11循环试用30天的破解方法

    XP/Win7下QTP11循环试用30天的破解方法. XP下:1.找到以下路径:C:\Documents and Settings\All Users\Application Data\SafeNet ...

  8. 神奇的输入 while(cin>>....)如何在遇见换行之后进入下一层循环读入

    cin>>m>>n; ;i<=m;i++) { ; char ch=' '; ) //在遇到换行之后进入下一层循环读入. { x++; cin>>c[x]; ...

  9. c语言下多线程

    原文:c语言下多线程 [问题]创建了10个线程,10个线程公用一个线程体,创建如下: int t1=0,t2=1,t3=2,t4=3,t5=4,t6=5,t7=6,t8=7,t9=8,t10=9; i ...

随机推荐

  1. DongDong认亲戚 来源:牛客网

    题目 链接:https://ac.nowcoder.com/acm/contest/28886/1021 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K, ...

  2. 第46届ICPC澳门站 K - Link-Cut Tree // 贪心 + 并查集 + DFS

    原题链接:K-Link-Cut Tree_第46屆ICPC 東亞洲區域賽(澳門)(正式賽) (nowcoder.com) 题意: 要求一个边权值总和最小的环,并从小到大输出边权值(2的次幂):若不存在 ...

  3. AI全流程开发难题破解之钥

    摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...

  4. Java开发学习(十九)----AOP环绕通知案例之密码数据兼容处理

    一.需求分析 需求: 对百度网盘分享链接输入密码时尾部多输入的空格做兼容处理. 问题描述: 点击链接,会提示,请输入提取码,如下图所示 当我们从别人发给我们的内容中复制提取码的时候,有时候会多复制到一 ...

  5. Win10文件、文件夹被占用解决方法

    有时删除文件/弹出移动硬盘的时候会出现文件或文件夹或磁盘被占用的情况,从而无法删除文件/文件夹或安全弹出移动硬盘.这时可以在资源管理器中搜索该文件.文件夹,来找到对应的程序. 使用了以下链接中的方法, ...

  6. ASP.NET Core依赖注入系统学习教程:容器对构造函数选择的策略

    .NET Core的依赖注入容器之所以能够为应用程序提供服务实例,这都归功于ServiceDescriptor对象提供的服务注册信息.另外,在ServiceDescriptor对象中,还为容器准备了3 ...

  7. Java SE 9 模块化示例

    Java SE 9 模块化示例 作者:Grey 原文地址:Java SE 9 模块化示例 说明 Java SE 9引入了模块系统,模块就是代码和数据的封装体.模块的代码被组织成多个包,每个包中包含Ja ...

  8. 原生应用、Web 应用和混合应用的概念,以及 Flutter 技术是什么

    应用类型 原生应用 原生应用就是使用特定的语言开发的应用,例如 Android 原生应用.Windows 原生应用.iOS 原生应用等.开发 Android 原生应用时,其特定的编程语言为 Java ...

  9. jsp获取多选框组件的值

    jsp获取多选框组件的值 1.首先写一个带有多选框的前台页 1 <%@ page language="java" contentType="text/html; c ...

  10. react实战系列 —— React 中的表单和路由的原理

    其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的 ...