品味经典和自己的学习之路

一、C#基本运算符

1、C#中的运算符

与C++的类似,==、!=、<、>、<=、>=、binary +、binary -、^、&|、~、++、-- 和 sizeof(),通常在枚举时允许这些运算。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义.

2、优先级

与C++差异也不大,请关注网站http://msdn.microsoft.com/library/6a71f45d.aspx讲的比较清楚。本处不再赘述。

二、说说C#的控制流语句

1、while和do/ while

while(条件)与do/while(条件)的区别仅仅是先判断条件是否满足还是先执行的问题,简单的程序如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WhileDo
{
   class Program
  {
    static void Main()
    {
        //计算1到100的和。
        int i=1,m = 0;

        while /*不会执行*/(i!=1)
        {
            m += i;
            i++;
        }
        Console.WriteLine("i={0}\t,m={1}",i,m);
        i=1;
        m = 0;

        do/*至少执行一次,这时i已经增加,再加入条件时要注意*/
        {
            m += i;
            i++;
        } while (i != 2);
        Console.WriteLine("i={0}\t,m={1}", i, m);
        //正常情况下执行程序
        //在i=100时也执行了程序i,的至最后为101
        while (i <= 100)
        {
            m += i;
            i++;
        }
        Console.WriteLine("i={0}\t,m={1}", i, m);
        i = 1;
        m = 0;

        do
        {
            m += i;
            i++;
        } while (i <= 100);
        Console.WriteLine("i={0}\t,m={1}", i, m);
        Console.ReadKey();
      }
   }
}  

输出:enter image description here

2、for和foreach

for循环语句可以转化为while语句,for循环的次数应该是已知的,有限的。但是while语句还可以适用于循环次数不定的循环。不再过多的举例论证了,还拿1到100内的加法:

 for(i=1;i<=100;i++)  
{
   m=m+i;
}

foreach 用来遍历数组或者其他的数据项的所有元素,不能对元素进行赋值,而for语句可以。

3、switch ...case语句

下面用一段小程序说明foreach和switch....case和跳转语句的简单用法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ValidateAndMove
{
    class Program
    {
        static void Main( )
        {
            string win;
            int n=0;
            string[] player=new string[3]{"a","b","c"};

           Console.Write("请输入一个字母(a,b,c中的一个):");
            win=Console.ReadLine();

            switch (win)
            {
                case "a": Console.Write("你输入的是{0}\n", win); n = 1; break;
                //如果符合条件就跳出switch语句。不再执行其中其他的语句
                case "b": Console.Write("你输入的是{0}\n", win); n = 1; break;
                case "c": Console.Write("你输入的是{0}\n", win); n = 1; goto default;
               /*goto语句可以将语句转接到想要它执行的地方,也是switch语句中最后case贯穿default  
                  的唯一可用的东西。*/ 
                 default :  
                   Console.Write("暂时没人胜利!\n");
                   Console.Write("请输入一个字母(a,b,c中的一个):");
                   win=Console.ReadLine();  
              //foreach遍历player中的所有元素
                   foreach (string letter in player)
                   {
                       if (win == letter)
                       {
                        n = 1;
                        Console.Write("胜利的是{0}\n", win);
                       }
                   }
                   break;
           }
           if (n!=0)
              Console.Write("幸运的告诉你{0}胜利",win);
          else
              Console.Write("平局!!");
          Console.ReadKey();
        }

     }
}

输出:enter image description here