找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1718|回复: 10
打印 上一主题 下一主题
收起左侧

C语言程序的一个小问题

[复制链接]
跳转到指定楼层
楼主
ID:601478 发表于 2019-12-17 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(t_1<=1 || t_2<=1)
{
        while(t_1<=1 && t_2<=1)
        {
                dis_E(3);
                return;
        }
        if(t_2<=1)  dis_E(2);  return;
        if(t_1<=1)  dis_E(1);  return;     //没有执行
}
这个函数用作判断两个脚的输入电平,A1脚输入低电平显示E1,A2脚输入低电平显示A2,同时为低电平显示A3;
问题:
最后的那句语句没有执行,被忽略了,大家看看是什么原因
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:666005 发表于 2019-12-17 10:32 | 只看该作者
满足 t_2<=1   if(t_2<=1)  dis_E(2);  return; 直接return退出了 两个if只会执行一个
回复

使用道具 举报

板凳
ID:470332 发表于 2019-12-17 10:39 | 只看该作者
看看是不是在这 if(t_2<=1)  dis_E(2);  return;返回了
回复

使用道具 举报

地板
ID:665997 发表于 2019-12-17 10:43 | 只看该作者
倒数第二句if(t_2<=1)  dis_E(2);  缺少一个else,此if语句执行后。到第一个分号 “dis_E(2);” ,则此if语句跳出,后接return。就直接跳出了最大的if语句。
回复

使用道具 举报

5#
ID:665997 发表于 2019-12-17 10:47 | 只看该作者
倒数第二行if语句不完整,少一个else。
if(t_2<=1)  dis_E(2);  return;
上述if语句,第一个分号时就结束了if判断,后接return就直接跳出最大if语句了
应改正为:if(t_2<=1)  dis_E(2); else return;
建议仔细看一下if语句的用法。
回复

使用道具 举报

6#
ID:155507 发表于 2019-12-17 12:01 | 只看该作者
给你改了

if(t_1<=1 || t_2<=1)
{
        while(t_1<=1 && t_2<=1)
        {
                dis_E(3);
                return;
        }
        if(t_2<=1)  {dis_E(2);  return; }  // <<----- 改成这样
        if(t_1<=1)  {dis_E(1);  return; }   //没有执行
}
回复

使用道具 举报

7#
ID:601478 发表于 2019-12-17 14:57 | 只看该作者
问题已解决,谢谢大家
回复

使用道具 举报

8#
ID:657194 发表于 2019-12-18 01:22 | 只看该作者


如有空,想问问这种和else if 在机器里执行的区别
回复

使用道具 举报

9#
ID:652775 发表于 2019-12-18 08:39 | 只看该作者
你的写法很,为什么用if(t_1<=1 || t_2<=1),而不用if(t_1 || t_2)?很少像你那么用
回复

使用道具 举报

10#
ID:666172 发表于 2019-12-18 09:48 | 只看该作者
if中直接t_1和t_2就行,高电平和低电平就是0和1
回复

使用道具 举报

11#
ID:667271 发表于 2019-12-18 17:59 | 只看该作者
这个函数倒数第二行if语句少一个else。
就是改正为:if(t_2<=1)  dis_E(2); else return;
建议你看一下if语句的用法。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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