鱼C论坛

 找回密码
 立即注册
查看: 8397|回复: 18

怎么阻止for语句里的第三个表达式执行?

[复制链接]
发表于 2012-8-13 21:59:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例如 for(; i < 5; i++)
        {
             ..........               
         }
如果循环里有我不想要的结果, 我要重头执行一次而且是在i不自加的情况下. 用了break和continue都不行.看来for不能完全替代while.
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 00:02:22 | 显示全部楼层
见识一下,俺来学习
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 02:33:21 | 显示全部楼层
= =  i++那里你留空就行了啊你不知道么
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 02:51:27 | 显示全部楼层
不想要的结果重新执行循环就写i--
小学题目 加一个减一个不变。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 03:54:39 | 显示全部楼层
while是最基本的循环,可用于代替do...while,for循环。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 04:19:01 | 显示全部楼层
别的循环能实现的,FOR循环好像都可以实现。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 09:39:30 | 显示全部楼层
for(....;...;++i){
if(不想要的结果){
--i;//先减少 后面执行++i 那就造成i不变的假象 够了
}
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-14 13:38:53 | 显示全部楼层

这样的代码不是很乱?也难懂.直接用while不就行了.所以我讲for替代不了while啊
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-14 13:42:02 | 显示全部楼层
两小无猜。 发表于 2012-8-14 02:33
= =  i++那里你留空就行了啊你不知道么

留空不就跟while没什么两样了?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 13:52:09 | 显示全部楼层
api 发表于 2012-8-14 13:38
这样的代码不是很乱?也难懂.直接用while不就行了.所以我讲for替代不了while啊

while 和 for 本来就一样的
没有所谓的谁代替谁
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 14:07:18 | 显示全部楼层
for(;;<不想执行>? i : ++i)
{

}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-14 14:50:21 | 显示全部楼层
我是师兄 发表于 2012-8-14 14:07
for(;;? i : ++i)
{
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main (void)
  4. {
  5.         char words[5][40];
  6.         char temp[5];
  7.         int i = 0;
  8.         while(i < 5 && gets(temp))
  9.         {
  10.                 if(temp[0] != 'q')
  11.                         printf("输入的字符串不是q开头的\n");
  12.                 else
  13.                 {
  14.                         strcpy(words[i], temp);
  15.                         i++;
  16.                 }
  17.         }
  18.         return 0;
  19. }
复制代码
像这段代码, 如果用for循环能比它更简洁吗?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 15:07:48 | 显示全部楼层
api 发表于 2012-8-14 14:50
像这段代码, 如果用for循环能比它更简洁吗?
  1. #include <stdio.h>
  2. int main(void){
  3.         char str[5][40];
  4.         int i;
  5.         for(i=0; i<5 && gets(str[i]); str[i][0]=='q'?++i:printf("输入的字符串不是q开头的\n"))
  6.                 ;
  7.         return 0;
  8. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 15:10:28 | 显示全部楼层
api 发表于 2012-8-14 14:50
像这段代码, 如果用for循环能比它更简洁吗?
  1. #include <stdio.h>
  2. int main(void){
  3.         char str[5][40];
  4.         int i;
  5.         for(i=0; i<5 ;++i){
  6.                 gets(str[i]);

  7.                 if('q' != str[i][0]){
  8.                         printf("输入的字符串不是q开头的\n");
  9.                         --i;
  10.                 }
  11.         }
  12.         return 0;
  13. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 15:12:47 | 显示全部楼层
  1. #include <stdio.h>
  2. int main(void){
  3.         char str[5][40];
  4.         int i;
  5.         for(i=0; i<5&&gets(str[i]); ++i)
  6.                 if('q' != str[i][0]){
  7.                         printf("输入的字符串不是q开头的\n");
  8.                         --i;
  9.                 }
  10.         return 0;
  11. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 15:40:39 | 显示全部楼层
本帖最后由 zquchs 于 2012-8-14 15:42 编辑

while(循环条件)            和      for( ; 循环条件 ; )                    
{                                               {
                                                    语句;
                                                 }
     语句;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 20:32:04 | 显示全部楼层
for(; i < 5; i++)
       #if {
             ..........               
         }
    #endif
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-14 20:56:52 | 显示全部楼层
我最近看的一本书A First Book of ANSI C(标准c语言基础教程)中有关for语句和while语句是这样描述的:在大多数其他语言中,for语句常用于建立计数器控制循环,而while语句用于建立条件式控制循环,但是在c语言中,这个简单的差别没有保留,因为每个语句都能用于建立每个类型的循环,这完全是一个风格问题。我看的是译文,我想:这句话说的意思是,c语言用while和用for都可以建立自己所需要的循环,只是看个人使用习惯。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-15 10:48:06 | 显示全部楼层
api 发表于 2012-8-14 13:38
这样的代码不是很乱?也难懂.直接用while不就行了.所以我讲for替代不了while啊

while可以实现的for都可以实现,只不过有的时候用for方便,有的时候用while更容易点。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 16:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表