第4章 流程控制
4.1 条件分支
// 单分支
if(){} else{}
// 多分支
if(){} else if(){} else{}
// 输入一个年份,判断该年是不是闰年。是的话输出Yes,不是的话输出No
// 闰年的条件 能被400整除 或者 能被4整除但是不能被100整除
static void Main(string[] args)
{
// 输入一个年份,判断该年是不是闰年。是的话输出Yes,不是的话输出No
string inputN = Console.ReadLine();
int year = Convert.ToInt32(inputN);
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
Console.WriteLine("是闰年");
}
else {
Console.WriteLine("不是闰年");
}
}
4.2 switch分支
switch(){
case 1:
break;
default:
break;
}
4.3 while循环
while (){}
// 3个可乐瓶可以换一瓶可乐,现在有364瓶可乐,问一共可以喝多少瓶可乐,剩下几个空瓶。
static void Main(string[] args)
{
Console.WriteLine("请输入你拥有的瓶数:");
int bottle = Convert.ToInt32(Console.ReadLine());
int drinkNum = bottle;
int emptyNum = bottle;//第一次喝完就得到了所有的空瓶子
while (emptyNum > 2) {
drinkNum += emptyNum / 3;//总瓶数 = 第一次总的 + 剩余空的去换
emptyNum = emptyNum / 3 + emptyNum % 3;//还有得空瓶子 = 去换完的空瓶子+换不掉的
}
Console.WriteLine("剩下{0}个空瓶子,喝了{1}瓶饮料",emptyNum,drinkNum);
}
4.4 do…while循环
do{} while(条件表达式);
4.5 for循环
for(初始化;条件表达式;增量表达式){}
// 输入一个正整数n,输出n层的菱形。
static void Main(string[] args)
{
// 输入整数n,输出n层的三角形
Console.WriteLine("please input one num:");
int target = Convert.ToInt32(Console.ReadLine());
// 外层循环控制打印轮数
for (int i = 0; i < target; i++)
{
// 循环控制空格输出
for (int j = target - i - 1; j > 0; j--)
{
Console.Write(" ");
}
// 循环控制打印星号
for (int k = 0; k < 2 * i + 1; k++)
{
Console.Write("*");
}
// 每轮循环结束打印换行
Console.WriteLine();
}
for (int l = 0; l < target - 1; l++) {
for (int m = 0; m < l + 1; m++) {
Console.Write(" ");
}
for (int n = 0; n < 2 * (target - 1 - l) - 1; n++) {
Console.Write("*");
}
Console.WriteLine();
}
}
// 冒泡排序,从小到大排序
int temp = 0;//用于交换两数值的临时变量
int[] arr = { 1, 52, 23, 4, 5, 34, 123423, 112, -1 };// arr.Length=5
//有n个数只要循环n-1次
for (int i = 0; i < arr.Length - 1; i++)
{
//内存循环用于比较大小,从第二个数开始比较
for (int j = i + 1; j < arr.Length; j++)
{
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
foreach (int j in arr)
{
Console.Write("{0}\t", j);
}
① break:跳出当前整个循环
② continue:跳出当前这一次循环,继续执行下一次循环的内容