爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1809|回复: 2

[求助] 条件语句简化

[复制链接]

新浪微博达人勋

发表于 2015-7-3 10:17:55 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
大家好:
     希望可以请教大家一个问题,
  需解决的问题:对a b c d e f g h i  j  十个变量进行判断,当他们同时满足条件x1 x2  x3 时  进行下一步运算
  请求的帮助  我可以用三个If语句进行嵌套,每个if语句中将10个变量满足条件and起来,可这样太繁琐了,请问一下,fortran中有语句可以将他们简化吗

附 程序中的If语句
     if((Atmax(i)/=32766).and.(Atmin(i)/=32766).and.(Arhmin(i)/=32766).and.(Arhm(i)/=32766).and.(Au10(i)/=32766).and.(Ahour(i)/=32766)) then
        if((Atmax(i)/=32744).and.(Atmin(i)/=32744).and.(Arhmin(i)/=32744).and.(Arhm(i)/=32744).and.(Au10(i)/=32744).and.(Ahour(i)/=32744)) then
           if((Atmax(i)/=32700).and.(Atmin(i)/=32700).and.(Arhmin(i)/=32700).and.(Arhm(i)/=32700).and.(Au10(i)/=32700).and.(Ahour(i)/=32700)) then
               {相关计算}
            else
              {相关计算}
else
{相关计算}
else
{相关计算}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2015-7-3 11:44:04 | 显示全部楼层
把那些特殊值放在一个数组中,然后调用数组的查询方法,如果数组中任意一个值和当前值一样(ANY方法)或者所有值都和当前值不一样(ALL方法),则匹配成功。这两个方法还支持两个数组之间的比较,具体请查询Fortran参考书。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-7-3 17:12:38 | 显示全部楼层
mofangbao 发表于 2015-7-3 11:44
把那些特殊值放在一个数组中,然后调用数组的查询方法,如果数组中任意一个值和当前值一样(ANY方法)或者 ...

十分感谢,已经修改好了
  将原语句改为       
shuru=(/Atmax(i),Atmin(i),Au10(i),Ahour(i),Arhmin(i),Arhm(i)/)
if((all(shuru(1:6)/=32766)).and.(all(shuru(1:6)/=32744)).and.(all(shuru(1:6)/=32700)))  then
{相关计算}
else
{相关计算}
endif

看起来简洁多了!

评分

参与人数 1金钱 +5 贡献 +1 收起 理由
mofangbao + 5 + 1

查看全部评分

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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