for循环
using System; namespace c.mydemo.net { class Demo { static void Main(string[] args) { for (int i=1;i<=9;i++) { Console.WriteLine("{0}",i); } } } }
using System; using System.Globalization; namespace c.mydemo.net { class Demo { static void Main(string[] args) { for (int i=1;i<=9;i++) { for (int j=1;j<=i;j++) { Console.Write("{0} x {1} = {2} ", j, i, i * j); } Console.WriteLine(); } } } }
using System; using System.Globalization; namespace c.mydemo.net { class Demo { static void Main(string[] args) { for (; ; ) { Console.Write("停不下来的无限循环"); } } } }
C#的基本语法和C/C++,Java的语法基本一致。下面只指出两者的不同之处。
C#使用using用来引入库文件,类似于Java的import以及C++的using namespace语句。同样C#也使用namespace来声明一个命名空间。
C#不像C++一样,有用于输入输出的关键字cin和cout,而是依赖于.NET类。最基本的类是System,这个类几乎所有的C#程序都要用到。
C#从一开始设计就是完全面向对象的,这一点和C++是不同的,因此一段C#代码都必须包含在一个类之中。
所有的C#代码的入口函数都是从下面这段代码开始的。
public static void Main() //public修饰符是为了在任何地方都能访问该方法
{ //static是为了使该方法无需实例化对象就能使用,否则无法访问入口函数
return; //声明的返回值是void,因此return;就结束了,不要试图返回一个数值。
//当你把返回值声明为int的时候,才能返回一个数值
} //但是这个返回值只能是void或者int。
需要注意的是C#的入口函数的Main的M是大写的。
C#中的所有变量在定义的时候都需要初始化,否则会出现语法错误,而不是像C/C++一样,只会产生一个警告。因此,我们说C#的安全性很高。这样能防止程序使用未初始化的垃圾值。
C#初始化变量的值一般有下面两种办法:
-
变量定义在类或者结构中,如果你忘记初始化,那么默认初始化为0。
-
在方法内部定义的局部变量必须初始化,否则错误。
C#的bool类型只有两个值true和false。在C#当中,绝不能使用0和1来代替false和true。
我们在使用C#的string引用类型的时候,感觉其操作和值类型是一致的,这是因为C#重载了运算符,并不是说string是一个值类型。例如我们可以使用+来连接两个字符串,以及使用=来给一个string变量赋值,产生一个新变量,而不是引用。
C#为路径地址等的麻烦的转义写法提供新的方式,就是在一串字符串的前面加上@符号。例如:
string path = @"C:\windows\system32";
C#的if语句之后的条件表达式必须是布尔类型的,不能是数值类型。这和C/C++语言不一样。
C#的switch语句相比C/C++的更加强大,它支持case后面的标签的类型包括字符串和整数。并且C#要求所有的case后面都必须有一个break;语句除非这条case标签后面是空的,那么可以没有break;例如:
switch(x)
{
case 0:
case 1:
case 2: z = x + y;break;
}