A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 离渊 中级黑马   /  2014-3-17 12:10  /  1983 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 离渊 于 2014-3-17 12:35 编辑

#include <stdio.h>
int main()
{
    for (int i = 0; i<10; i++) {
        if (i % 2) continue;
        if (i == 8) break;
        printf("i=%d\n", i);
    }
    return 0;
}
先说下我的想法   
0  0<10  0%2 还是0   是假  直接被continue 进入下一个循环
1  1<10 1%2  为1      是真  继续运算 !==8 1+1 是 2 第一个值
依次 2 4 6 8 取余都为0  是假 10!<10 偶数就到这里了
3 5 7 9 取余为1 为真  输出 4 6 8 10

所以我觉得输出结果是2 4 6 8 10   为什么答案是 0 2 4 6?

i == 8的时候不是直接continue 了么  break 怎么还会有作用?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
   


        for (int i = 0; i<10; i++)
        {
            if (i % 2) //当i = 8等时候这个continue是不起作用的!
                continue;
            
            if (i == 8)// 当 i = 8的时候break是起作用了得!直接就跳出整个for循环了
                break;
            printf("i=%d\n", i);
        }
    //所以打印结果肯定是0 2 4 6

        return 0;
}

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 Silent_memory 于 2014-3-17 12:27 编辑

0 % 2 是 0  代表假  不会执行continue 语句  0 不等于 8 不执行break语句  输出 一个 0
1 % 0 = 1 执行continue  
2 % 2  与0是同理的  输出 2
3 % 2 = 1 代表真  执行continue
4 % 2  与0同理
5 % 2 = 1
6 % 2 = 0  同理 0
7 % 2 = 1 真
8 % 2 = 同理 0

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
Silent_memory 发表于 2014-3-17 12:23
0 % 2 是 0  代表假  不会执行continue 语句  0 不等于 8 不执行break语句  输出 一个 0
1 % 0 = 1 执行con ...

  好吧  是真才执行 continue 是吧   i++始终就是打酱油的?
回复 使用道具 举报
离渊 发表于 2014-3-17 12:26
好吧  是真才执行 continue 是吧   i++始终就是打酱油的?

不是啊  
for(int i = 0; i < 10 ; i++){ codeing}
首先 int i = 0;只创建一次在内存中,  
i 《 10  是循环的判断条件   
每次执行完{ codeing} 中的代码后 就会执行一次 i++  改变循环判断条件   
回复 使用道具 举报
你把if语句理解错了,条件为真时才执行后面的continue语句。
当i=0时,i%2=0,程序跳过continue语句,执行后面的程序,打印i的值;i递增后,也是这样分析。
当i=8时,程序退出循环,所以最后打印的是0,2,4,6
回复 使用道具 举报
离渊 中级黑马 2014-3-17 12:35:15
7#
Silent_memory 发表于 2014-3-17 12:32
不是啊  
for(int i = 0; i < 10 ; i++){ codeing}
首先 int i = 0;只创建一次在内存中,  

  o(︶︿︶)o 唉 2 了   谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马