一、顺序语句
二、条件,分支语句
1、if语句
关键是能够熟练运用 if的嵌套。要考虑好所有的情况。
如果说 条件是两种情况相互对应的,那么就可以只用 if 与else 。但必须要想好 每个else 跟哪个if是一对。
如果情况是相互独立的三种情况以上,那么可以选择运用if ... else if ...else。
1.if语句
if(条件)
{
满足条件的时候执行;
}
2. if(条件)
{
满足条件执行;
}
else
{
不满足条件时执行;
}
3 if(条件1)
{
满足条件1的时候执行;
}
else if(条件2)
{
不满足条件1的情况下满足条件2;
}
4.
if(条件1)
{
if(条件2)
{
既满足条件1又满足条件2的时候执行;
}
}
2、switch 语句
如果说可选的条件比较多时,选择switch语句,要比if语句效率要高。特别注意的是 case 后跟的break。
eg:
//eg.6 swtich语句 作用域
static void Maine(string[] args)
{
//Console.WriteLine("你本次选择出场的英雄是:");
Random r = new Random();
int n = r.Next(10);
string a;
switch (n)
{
case 1:
a = "赵信"; break;
case 2:
a = "寒冰射手";break;
case 3:
a = "无极剑圣";break;
case 4:
a = "机器人"; break;
default:
a = "齐天大圣";break;
}
Console.WriteLine("本次选择的英雄是:"+a);
}
三、循环语句
for循环
四要素:
初始条件,循环条件,状态改变,循环体。 执行过程:
初始条件--循环条件--循环体--状态改变--循环条件....
注意:for的小括号里面分号隔开,for的小括号后不要加分号。
利用 加断点的方式,可以更好的明白for的工作原理。
1.for循环空操作完成的实例, 输出100以内的数字
static void Main(string[] args) { int i = 1; for (; ; ) { if (i > 100) { break; } Console.Write(i + "\t"); i++; } Console.ReadKey(); }</div>
当然你也可以用 while,if() break;的嵌套完成上述操作。
.正序和逆序的推断问题。 (折纸问题)
//eg.5 折纸问题
static void Maine(string[] args) { //Console.WriteLine("请输入次数"); //int n = Convert.ToInt32(Console.ReadLine()); //int i = 0; //for (double sum = 0.0001; sum <= 8848.0; sum = sum * 2) //{ // i++; //} //Console.WriteLine(i); double sum = 0.0001; int z = 0; for (int i = 0; ; i++) { z++; sum = sum * 2; if (sum >= 8848.0) { Console.WriteLine(z); break; } } }</div>
.应用:a.穷举法: 用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。
//eg.6 百马百石 大马驮2石,中马驮1石 小马驮0.5石
static void Main6a(string[] args) { for (int i = 0; i <= 50; i++) { for (int j = 0; j <= 100; j++) { for (int k = 0; k <= 200; k++) { if ( (i * 2 + j * 1 + k * 0.5 == 100) && (i + j + k == 100) ) { Thread.Sleep(50); Console.WriteLine("大马需要" + i + "头,中马需要" + j + "头,小马需要" + k + "头。"); } } } } }</div>
//eg.7
static void Maing(string[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j < 5; j++) { for (int k = 1; k < 25; k++) { if (i * 5 + j * 10 + k * 25 == 50) { Console.WriteLine("50元用来买" + i.ToString() + "个牙刷," + j.ToString() + "个牙膏," + k.ToString() + "块肥皂,正好能用完。"); } } } } }</div>
//eg.8 有1块,2块,5块的钱若干,凑出20块钱,有几种凑法
static void Mainh(string[] args) { int m = 0; for (int i = 0; i <= 20; i++) { for (int j = 0; j <= 10; j++) { for (int k = 0; k < 4; k++) { if (i * 1 + 2 * j + 5 * k == 20) { m++; Console.WriteLine("一共有" + m + "中方法。"); Console.WriteLine("需要1元的" + i + "张,2元的" + j + "张,5元的" + k + "张。"); } } } } }</div>
//eg.9 1 () 2 () 3 ()4 = 4;问括号里我要填 (- 或 +)
static void Maini(string[] args) { for (int i = 1; i <= 1; i += 2) { for (int j = -1; j <= 1; j += 2) { for (int k = -1; k <= 1; k += 2) { for (int l = -1; l <= 1; l += 2) { if (1 * i + 2 * j + 3 * k + l * 4 == 4) { Console.WriteLine("i=" + i + ",j=" + j + ",k=" + k + ",l=" + l + "。"); } } } } } }</div>
//eg.10 123()45()67()8()9=100;要求在()里面填写+或-使等式成立。
static void Maini2(string[] args) { for (int a = -1; a <= 2; a += 2) { for (int b = -1