| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1409 人关注过本帖
标题:请各位分析一下这一段代码,谢谢了!
只看楼主 加入收藏
polestar707
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-12-11
收藏
 问题点数:0 回复次数:13 
请各位分析一下这一段代码,谢谢了!

using System;

class IfApp { public static int Main(string[] args) { //如果命令行参数小于一个,则显示程序正确用法,退出程序 if(args.Length < 1) { Console.WriteLine("Usage: ifApp char"); return 1; }

//获得第一个命令行参数第一个字母 //把该字母赋给变量chLetter char chLetter = args[0][0]; //如果字母大于等于字符'A' if(chLetter >= 'A') { //同时,字母小于字符'Z' //则该字母为大写字母 if(chLetter <= 'Z') { Console.WriteLine("{0} 是个大写字母", chLetter); return 0; } }

//如果字母界与字符'a'和'z'之间 //则该字母为小写字母 if(chLetter >= 'a' && chLetter <= 'z') { Console.WriteLine("{0} 是个小写字母", chLetter); return 0; }

//如果字母为数字 if(Char.IsDigit(chLetter)) { Console.WriteLine("{0} 是个数字", chLetter); return 0; }

//缺省地(以上条件都不符合),则该字母为特殊字符 Console.WriteLine("{0} 是个特殊字符", chLetter); return 1; } }

这段程序不复杂,但我不明白这一句代码:char chLetter = args[0][0],args的类型是string[],是一维数组,怎么能用args[0][0]呢? 更奇怪的是把args[0][0]改成args[0]之后调试的时候就会出错,提示是string不能隐式转换成char. 请问这是什么原因呢?谢谢

搜索更多相关主题的帖子: args 字母 chLetter 代码 变量 
2005-03-09 15:41
polestar707
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-12-11
收藏
得分:0 
还有个问题,为什么有的地方返回0,有的地方返回1呢?
在下是菜鸟,各位见笑了
2005-03-09 15:43
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
char 是一个字符类型,string 是一串字符类型,

一个string类型相当于一个char[]类型。
2005-03-09 16:35
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
if(args.Length &lt; 1)

返回0和1是因为要给这个if()判断条件,而args相当于启动参数。

例如你启动一个exe文件,你在启动的时候是可以传一个或多个命令来启动它。

args就是这段命令,所以要用char[][],二维字符数组,而char[] = string,所以char[][] = string[]。
2005-03-09 16:40
lsj2000
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2004-11-25
收藏
得分:0 
感觉用言语不是很好表达,我们来看一下string[]数组的元素值是多少吧。
假设存在这样的字符串数组:
string[] args={"abc","def","ghi"};

如果 char car = args[0][0];
那么 car 的值是 a   //第0个元素的第0个字符。

如果 char car = args[0][2];
那么 car 的值是:c    //第0个元素的第2个字符。

如果 char car=args[1][0];
那么 car 的值是:d    //第1个元素的第0个字符。

也就是说 string[] grgs 的确是个一维数组,但是每个元素又的值有一个以上的字符组成,而char 类型
只能表示单个字符 所以…………
这样说你能明白吗?

我也是个初学者,其实我也不确定我的解释是否正确。
哪位大虾能系统的解释一下呀。

我是初学者,有什么不周之处还望各位大虾指点一二。
2005-03-09 16:46
polestar707
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-12-11
收藏
得分:0 
以下是引用live41在2005-3-9 16:40:02的发言: if(args.Length < 1) 返回0和1是因为要给这个if()判断条件,而args相当于启动参数。 例如你启动一个exe文件,你在启动的时候是可以传一个或多个命令来启动它。 args就是这段命令,所以要用char[][],二维字符数组,而char[] = string,所以char[][] = string[]。
return 0或者return 1之后,已经推出了程序,怎么会给if提噢能够判断条件呢? 另一个问题的答案是string[]相当于char[][],对吗?
2005-03-09 16:48
lsj2000
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2004-11-25
收藏
得分:0 
以下是引用live41在2005-3-9 16:35:32的发言: char 是一个字符类型,string 是一串字符类型, 一个string类型相当于一个char[]类型。
呵呵 一语道破天机。果然是高手。

我是初学者,有什么不周之处还望各位大虾指点一二。
2005-03-09 16:51
polestar707
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2004-12-11
收藏
得分:0 
谢谢两位的解答!

第一个问题解决了,但我还是不知道为什么有的地方return 0,有的地方return 1 ?
2005-03-09 16:56
风霜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:7
帖 子:242
专家分:0
注 册:2005-3-4
收藏
得分:0 
reture 1 是表示是ture
reture 0 是false

昔日犹存, 昔日枉存. 故人尚在, 故人何在?
2005-03-19 12:09
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
以下是引用风霜在2005-3-19 12:09:36的发言: reture 1 是表示是ture reture 0 是false
错了,C#语法是严格区分int和bool类型的,不能象C++那样理解。
2005-03-19 12:35
快速回复:请各位分析一下这一段代码,谢谢了!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018593 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved