打印

请各位支招...

[复制链接]
1278|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xvezhe|  楼主 | 2014-1-11 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xvezhe 于 2014-1-11 10:45 编辑


trade_num=0开始,trade_num 自加1;
trade_num++;
如果在trade_num<=3内,出现UART_bit==1,
则跳出循环判断:则输出result=0;
如果trade_num<=3内都没出现UART_bit==1,则输出result=1;

本段代码如何写,简洁点呢,请各位支招:)

相关帖子

沙发
ayb_ice| | 2014-1-11 11:07 | 只看该作者
本帖最后由 ayb_ice 于 2014-1-11 11:09 编辑



    trade_num = 0;
    for(;;){
        if(UART_bit == 1){
            result = 0;
            break;
        }
        if(++trade_num >= 3){
            result = 1;
            break;
        }
    }










使用特权

评论回复
板凳
xvezhe|  楼主 | 2014-1-11 11:29 | 只看该作者
ayb_ice 发表于 2014-1-11 11:07
trade_num = 0;
    for(;;){
        if(UART_bit == 1){

trade_num 这个变量值是从其他子函数变数量来的,也就是不能在FOR里自加。。。FOR里只能判断trade_num<=3内判断是否出现UART_bit == 1;这样怎样更改的呢。。。谢谢请教

使用特权

评论回复
地板
msblast| | 2014-1-11 11:50 | 只看该作者
int trade_num = 0;
int result = 1;
    for(trade_num=0;trade_num<=3;trade_num++){
        if(UART_bit == 1){
            result = 0;
            break;
        }
    }

使用特权

评论回复
5
xvezhe|  楼主 | 2014-1-11 11:53 | 只看该作者
ayb_ice 发表于 2014-1-11 11:07
trade_num = 0;
    for(;;){
        if(UART_bit == 1){

当trade_num=1或trade_num=2时,还没出现UART_bit == 1时,需跳出循环执行其他的子函数;trade_num=3时,再进循环判断是否有UART_bit == 1出现,不出现则输出result = 1;若trade_num=1或trade_num=2时,出现UART_bit == 1,则不再进入循环判断了,跳过循环判断执行其他的子函数

使用特权

评论回复
6
xvezhe|  楼主 | 2014-1-11 11:57 | 只看该作者
msblast 发表于 2014-1-11 11:50

当trade_num=1或trade_num=2时,还没出现UART_bit == 1时,需跳出循环执行其他的子函数;trade_num=3时,再进循环判断是否有UART_bit == 1出现,不出现则输出result = 1;若trade_num=1或trade_num=2时,出现UART_bit == 1,则不再进入循环判断了,跳过循环判断执行其他的子函数

使用特权

评论回复
7
msblast| | 2014-1-11 12:06 | 只看该作者
msblast 发表于 2014-1-11 11:50

看到了3#修改如下
    int result = 1;
    for(;trade_num<=3;){
        if(UART_bit == 1){
            result = 0;
            break;
        }
    }

使用特权

评论回复
8
msblast| | 2014-1-11 12:37 | 只看该作者
xvezhe 发表于 2014-1-11 11:57
当trade_num=1或trade_num=2时,还没出现UART_bit == 1时,需跳出循环执行其他的子函数;trade_num=3时, ...

这样吧,也不知道符合你的要求没有
    int result = 1;
    if((trade_num <= 3) && (UART_bit == 1)){
        result = 0;
    }

使用特权

评论回复
9
xvezhe|  楼主 | 2014-1-11 14:07 | 只看该作者
msblast 发表于 2014-1-11 12:37
这样吧,也不知道符合你的要求没有

谢谢,在这得到了想法。。。

使用特权

评论回复
10
dirtwillfly| | 2014-1-11 21:09 | 只看该作者
这样也行啊

使用特权

评论回复
11
xvezhe|  楼主 | 2014-1-12 20:38 | 只看该作者
本帖最后由 xvezhe 于 2014-1-12 20:39 编辑
dirtwillfly 发表于 2014-1-11 21:09
这样也行啊

呵呵,在8#启发中,得出了的答案,,版主有更好的编程吗,,:$     

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

225

帖子

2

粉丝