【提问】程序逻辑处理问题

xupeihuagudulei3 2010-05-27 09:10:11
for (int i = 0; i < 10; i++)
{
if (i == 5)
{

}
else
{
Label1.Text = "false";
break;
}
}

Label1.Text = "5";
}

上面这段代码。
我是想这样的。当进入else块的时候。label1.text这就不能被执行了。
label1.text只能是进入if块的时候执行。但是不能把它放进if块里。
想知道这该咋解决啊?
想半天想不过来。
...全文
508 79 打赏 收藏 转发到动态 举报
写回复
用AI写文章
79 条回复
切换为时间正序
请发表友善的回复…
发表回复
皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 76 楼 xupeihuagudulei3 的回复:]
呵呵,终于搞好啦。
真辛苦大家。
[/Quote]

呵呵。不容易啊,可以睡个安稳觉了。
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
呵呵,终于搞好啦。
真辛苦大家。
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
哎,还是再写个小例子测试下。需要不需要再手动I++
皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
恩,这样可以,看错位了,呵呵
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 69 楼 koukoujiayi 的回复:]

还没搞定?
[/Quote]呵呵,多谢关心。应该算搞定了。
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 70 楼 ly302 的回复:]

或者
C# code

if(String.isNullOrEmpty(arr[i].ToString()))
{
arr[i] = "";
i++;//把这个第i个,跳到下一个
……
[/Quote]我觉得应该不用跳了吧。
执行完arr[i]="";赋值之后
应该就会走到for语句的花括号了。
然后自然会跳到上面的for(I++)上面吧。
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
我觉得不会了啊。这样。
你再看下仔细

for (int i = 0; i < arr.Count; i++)
{
if(String.isNullOrEmpty(arr[i].ToString()))
{
arr[i] = "";
}
else
{
if (DateTime.TryParse(arr[i].ToString(), out result))
{
//这里就是处理显示格式了。
arr[i] = result.Hour > 12 ? result.ToString("yyyy MM dd hh mm ss P\"M\"") : result.ToString("yyyy MM dd hh mm ss A\"M\"");
}
else
{
//这里就是前面datatime.tryparse转换不成功的时候。也就是说arraylist里//面的数据全是为"0.55353"这类小数形式的。所以不需要处理直接放进hashtable里key所对应的value.
workbook.DataSource[key] = val;
break;
}
}


}

皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
或者

if(String.isNullOrEmpty(arr[i].ToString()))
{
arr[i] = "";
i++;//把这个第i个,跳到下一个
}
koukoujiayi 2010-05-28
  • 打赏
  • 举报
回复
还没搞定?
皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 67 楼 xupeihuagudulei3 的回复:]
改成这样行不行

C# code

for (int i = 0; i < arr.Count; i++)
{
if(String.isNullOrEmpty(arr[i].ToString()))
{
……
[/Quote]

这样不行的,一样会跳出的

如果arr[i] = "";那么后面的if还会跳出,因为不符合时间格式

空值需要先处理
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
改成这样行不行

for (int i = 0; i < arr.Count; i++)
{
if(String.isNullOrEmpty(arr[i].ToString()))
{
arr[i] = "";
}
else{
if (DateTime.TryParse(arr[i].ToString(), out result))
{
//这里就是处理显示格式了。
arr[i] = result.Hour > 12 ? result.ToString("yyyy MM dd hh mm ss P\"M\"") : result.ToString("yyyy MM dd hh mm ss A\"M\"");
}
else
{
//这里就是前面datatime.tryparse转换不成功的时候。也就是说arraylist里//面的数据全是为"0.55353"这类小数形式的。所以不需要处理直接放进hashtable里key所对应的value.
workbook.DataSource[key] = val;
break;
}
}


}

皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
那应该先把空值过滤掉

否则只要有空值就会跳到
workbook.DataSource[key] = val;
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
空值的话就反空值赋值给arr
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 63 楼 ly302 的回复:]

引用 58 楼 xupeihuagudulei3 的回复:
引用 56 楼 ly302 的回复:

引用 52 楼 xupeihuagudulei 的回复:
引用 51 楼 ly302 的回复:

如果是空值的话岂不是也要else?
是啊。所以说不能随便拿一个来判断的
看样子只能用加flag来判断。
PS:刚不小心按了关机键。晕


那是不是可以这么理解,这个集合里面要么……
[/Quote]恩,我知道。那这样该咋整?
皇城龙三 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 58 楼 xupeihuagudulei3 的回复:]
引用 56 楼 ly302 的回复:

引用 52 楼 xupeihuagudulei 的回复:
引用 51 楼 ly302 的回复:

如果是空值的话岂不是也要else?
是啊。所以说不能随便拿一个来判断的
看样子只能用加flag来判断。
PS:刚不小心按了关机键。晕


那是不是可以这么理解,这个集合里面要么就是全空值,要么就全时间,要么就全数字


如果这样的话,……
[/Quote]

因为if (DateTime.TryParse(arr[i].ToString(), out result))这个的判断应该是时间的

空值不是时间的,会转到else的
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
对了。要是空值的话现在的代码里没处理。
就算arr是时间格式的话。要是其中有一个为空的话直接跳到else里了。也就是说循环里所有处理时间的都白写了。最后还是从原来的val里赋值。看样子代码还得再改改。
yoursWTR 2010-05-28
  • 打赏
  • 举报
回复
arr[i] = DateTime.TryParse(arr[i].ToString(), out result)? (result.Hour > 12 ? result.ToString("yyyy MM dd hh mm ss P\"M\"") : result.ToString("yyyy MM dd hh mm ss A\"M\"")): null;

少个括号嘛

这个是按你的意思,你说的arr包含的要么全部时间,要么全部数字,
那么,for里面循环arr满足则转换,不满足则给予NULL
最后检查第一个arr[0]是值是否为空来给workbook.DataSource[key]赋值
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 yourswtr 的回复:]

C# code

for (int i = 0; i < arr.Count; i++)
arr[i] = DateTime.TryParse(arr[i].ToString(), out result)? result.Hour > 12 ? result.ToString("yyyy MM dd hh mm ss P\"M\"") : result.ToString("yyyy MM dd……
[/Quote]感觉这样写不对
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 57 楼 yourswtr 的回复:]

C# code

for (int i = 0; i < arr.Count; i++)
arr[i] = DateTime.TryParse(arr[i].ToString(), out result)? result.Hour > 12 ? result.ToString("yyyy MM dd hh mm ss P\"M\"") : result.ToString("yyyy MM dd……
[/Quote]这个写得。我都看不懂。头一次知道三元还可以多次放一起使用
xupeihuagudulei3 2010-05-28
  • 打赏
  • 举报
回复
[Quote=引用 56 楼 ly302 的回复:]

引用 52 楼 xupeihuagudulei 的回复:
引用 51 楼 ly302 的回复:

如果是空值的话岂不是也要else?
是啊。所以说不能随便拿一个来判断的
看样子只能用加flag来判断。
PS:刚不小心按了关机键。晕


那是不是可以这么理解,这个集合里面要么就是全空值,要么就全时间,要么就全数字


如果这样的话,也可以随便抽取一个

因为空值和数字都……
[/Quote]啊,不是吧。
我觉得最有可能就是要么是数字和空值混合体,要么时间和空值混合体。
这样的话,程序会跳出?
加载更多回复(59)
内容概要:本文针对无刷直流电机驱动的电子机械制动(EMB)执行器,建立了考虑Stribeck摩擦特性的非线性耦合动力学模型,并在Simulink环境中完成了系统级仿真分析。研究综合集成了电机动力学、齿轮传动机构与制动执行机构的动力学特性,构建了高保真的机电一体化系统模型。重点引入Stribeck摩擦模型以精确描述低速工况下执行器内部存在的静摩擦、粘滞摩擦与库仑摩擦之间的过渡行为,有效提升了系统在启停、反向运动等瞬态过程中的动态响应仿真精度。通过多工况仿真验证了模型的有效性,能够准确反映摩擦引起的爬行、滞后与定位误差等非线性现象,为EMB系统的高性能控制算法设计(如摩擦补偿、滑模控制)与结构优化提供了高可信度的仿真平台。; 适合人群:从事汽车电子制动系统、电机驱动控制、机电系统建模与仿真研究的研究生、科研人员及工程技术人员,需具备扎实的机械动力学、自动控制理论基础和MATLAB/Simulink仿真能力。; 使用场景及目标:①用于高精度电子机械制动系统的设计验证与性能预测;②为消除摩擦非线性影响的先进控制策略(如自适应控制、智能控制)提供精确的被控对象模型;③深入探究Stribeck摩擦等非线性因素对系统动态性能(如响应延迟、稳态误差)的作用机理; 阅读建议:读者应结合提供的Simulink模型文件,深入剖析Stribeck摩擦模块的数学实现与参数辨识方法,建议通过改变输入指令(如阶跃、正弦)和负载条件进行对比仿真,以直观理解非线性摩擦对系统动态特性的影响。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧