今天初次接触了C#,感受到了程序的魅力... ...
进步的一天,今天学习了“变量表达式”和“流程控制”.
总结:
1、简单类型
sbyte (在-128~127之间的整数); byte(在0~255之间的整数);
short (在-32768~32767之间的整数); ushort(在0~65535之间的整数);
int (在-2147483648~2147483648之间的整数);uint(在0~2147483648之间的整数);
long (在-9223372036854775808~9223372036854775808之间的整数);
ulong(在0~9223372036854775808之间的整数);
char (一个Unicode字符,存储0~65535之间的整数);
bool (布尔值:true 或 false);
string(一组字符);
三种浮点型(有小数点):float;double;decimal
2、转义符
说明:
myString="/"myInteger/" is"; ("/""是"/"转义""")
3、数字运算符
二元
+ var1=var2+var3; var1的值是var2与var3的和;
— var1=var2-var3;var1的值是var2的值减去var3的值所得的值;
* var1=var2*var3; var1的值是var2与var3的乘积;
/ var1=var2/var3; var1的值是var2除以var3所得的值;
% var1=var2%var3;var1的值是var2除以var3所得的余数;
一元
+ var1=+var2; var1的值等于var2的值;
— var1=-var2; var1的值等于var2的值除乘-1;
++ var1=++var2; var1的值是var2+1,var2递增1;
—— var1=——var2; var1的值是var2-1,var2递减1;
++ var1=var2++; var1的值是var2,var2递增1;
—— var1=var2——; var1的值是var2,var2递减1;
4、赋值运算符
二元
= var1=var2; var1被赋予var2的值;
+= var1+=var2; var1被赋予var1与var2的和;
—= var1—=var2; var1被赋予var1与var2的差;
*= var1*=var2; var1被赋予var1与var2的乘积;
/= var1/=var2; var1被赋予var1与var2相除所得的结果;
%= var1%=var2; var1被赋予var1与var2相除所得的余数;
5、布尔逻辑运算符
二元
== var1=var2==var3; 如果var2等于var3,var1的值就是ture,否则为false;
!= var1=var2!=var3; 如果var2不等于var3,var1的值就是ture,否则为false;
< var1=var2<var3; 如果var2小于var3,var1的值就是ture,否则为false;
> var1=var2>var3; 如果var2大于var3,var1的值就是ture,否则为false;
<= var1=var2<=var3; 如果var2小于或等于var3,var1的值就是ture,否则为false;
>= var1=var2>=var3; 如果var2大于或等于var3,var1的值就是ture,否则为false;
6、布尔运算符
一元
! var1=!var2; 如果var2是false,var1的值就是true,否则为false(逻辑非);
二元
& var1=var2&var3; 如果var2和var3都是ture,var1的值就是true,否则为false(逻辑与);
| var1=var2|var3; 如果var2或var3是true(或两者都是),var1的值就是true,否则为false(逻辑或);
^ var1=var2^var3; 如果var2或var3中有且仅有一个是ture,var1的值就是true,否则为false(逻辑异或);
&& var1=var2&&var3; 如果var2和var3都是ture,var1的值就是true,否则为false(逻辑与);
|| var1=var2||var3; 如果var2或var2是true(或两者都是),var1的值就是true,否则为false(逻辑或);
说明:“&&”和“||”性能比“&”和“|”强,主要是“&&”和“||”前者只要有不符合调教那么就不进行后面的判断,但是“&”和“|”就无论符合不符合都要进行全部判断,造成性能不佳。
7、布尔赋值运算符
二元
&= var1&=var2; var1的值是var1&var2的结果;
|= var1|=var2; var1的值是var1|var2的结果;
^= var1^=var2; var1的值是var1^var2的结果;
8、位移运算符
二元
>> var1=var2>>var3; 把var2的二进制值向右移动var3位,就得到var1的值;
<< var1=var3<<var3; 把var2的二进制值向左移动var3位,就得到var1的值;
一元
>>= var1>>=var2; 把var1的二进制值向右移动var2位,就得到var1的值;
<<= var1<<=var2; 把var1的二进制值向左移动var2位,就得到var1的值;
9、运算符优先级
优先级大致分为:
前缀数字运算符 > 数字运算符 > 二元位移运算符 > 布尔运算符 > 赋值运算符 > 一元位移运算符 > 后缀数字运算符
10、goto语句
goto语句可以让程序直接跳转goto语句指向的程序语句。
11、三元运算符
eg:string resultString = (myInteger<10)? "Less than 10" : "Greater than or equal to 10";
把哪个哪个字符串赋给resultString?取决于myInteger的值与10的比较,如果myInteger的值小于10,就把第一个字符串赋给resultString;如果myInteger的值大于或等于10,就把第二个字符串赋给resultString。
12、if语句
if、else一般可以同时使用,比较方便合理,逻辑性强。
eg: static void Main(string[] args)
{
string comparison;
Console.WriteLine("Enter a number:");
double var1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Enter another number:");
double var2 = Convert.ToDouble(Console.ReadLine());
if (var1 < var2)
comparison = "less than";
else
{
if (var1 == var2)
comparison = "equal to";
else
comparison = "greater than";
}
Console.WriteLine("The first number is {0} the second number.",comparison);
Console.ReadKey();
}
示例说明:输入两个数字进行比较。
13、switch语句
switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件。
switch语句执行完每个部分中的代码后,还需有另一个语句break。在执行完一个case块后,再执行第二个case语句是非法的,所以要注意加break.
eg:static void Main(string[] args)
{
const string myName = "karli";
const string sexyName = "angrlina";
const string sillyName = "ploppy";
string name;
Console.WriteLine("What is your name?");
name = Console.ReadLine();
switch (name.ToLower())
{
case myName:
Console.WriteLine("You have the same name as me!");
break;
case sexyName:
Console.WriteLine("My, what a sexy name you have!");
break;
case sillyName:
Console.WriteLine("That's a very silly name.");
break;
}
Console.WriteLine("Hello {0}!",name);
Console.ReadKey();
}
示例说明:比较字符串(名字)。
14、do循环
do循环:执行标记为循环代码,然后进行一个布尔测试,如果测试的结果为ture,就再次进行这段代码。当测试结果为false时,就退出循环。
eg:int i=1;
do
{
Console.WriteLine("{0}", i++);
}
while ( i <= 10 );
示例说明:可以把从1~10的数字输入到一列上。
15、while循环
while循环:while循环中的布尔测试是在循环开始时进行,而不是最后。如果测试结果为false,就不会执行循环。程序会直接跳转到循环后面的代码。
eg: int i=1;
while ( i <= 10 )
{
Console.WriteLine("{0}", i++);
}
示例说明: 可以把从1~10的数字输入到一列上。
16、for循环(用得最多的循环)
for循环:for循环的格式使代码更易于阅读,其语法食杂一个地方包括循环的全部规则,而不是把几个语句放在代码的不同地方。
eg:int i=1;
for ( i=1; i <= 10; ++i )
{
Console.WriteLine("{0}", i);
}
示例说明: 可以把从1~10的数字输入到一列上。
17、循环中断
C#的循环中断有4个命令:
(1)break——立即终止循环。
(2)continue——立即终止当前的循环(继续执行下一次循环)。
(3)goto——可以跳出循环,到goto语句指定的程序代码继续执行代码。(最好不要用这个命令,阻碍阅读性)
(4)return——跳出循环及其包含的函数。
18、经典示例程序
eg: static void Main(string[] args)
{
double balance, interestRate, targetBalance; // balance=初始金额 interestRate=利率 targetBalance=目标金额
Console.WriteLine("What is your current balance?");
balance = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("What is your current annual interest rate(in %)?");
interestRate = 1 + Convert.ToDouble(Console.ReadLine()) / 100.0;
Console.WriteLine("What balance would you like to have?");
do
{
targetBalance = Convert.ToDouble(Console.ReadLine());
if (targetBalance <= balance)
Console.WriteLine("You must enter an amount greater than" + "your cuttent balance!/nPlease enter another value.");
}
while (targetBalance <= balance);
int totalYears = 0;
while (balance < targetBalance)
{
balance *= interestRate;
++totalYears;
}
Console.WriteLine("In {0} year{1} you'll have a balance of {2}.", totalYears, totalYears==1?"":"s",balance);
Console.ReadKey();
}
示例说明:使用一个循环,根据其实的金额和利率,计算该账户的金额要花多长时间才能达到某个指定的数值。
第一天接触C#,静心的学了不少书本上的东西,算是进步的一天,QQ糖豆很笨,但需要坚持,希望这是个好的开始,加油!希望明天也能获得如此的收获,加油吧!QQ糖豆!加油!