条件执行语句
if 语句
语法:
if(条件)
{
语句1;语句2;语句3;
···
}
if(条件)
{
语句1;语句2;语句3;
···
}执行过程: 先判断条件是否为true ,如果为true则执行语句块中的内容。如果为false,则跳过语句块,执行下面代码。
注:if括号中的条件,要能计算成bool类型的值。默认情况下,if语句只能带一句话。在我们写程序时,即使if后只有一句话,也要用{}括起来,养成良好的书写格式。
if-else 语句
语法:
if(条件)
{
语句1;
}
else
{
语句2;
}
if(条件)
{
语句1;
}
else
{
语句2;
}执行过程:先判断条件是否为true,如果为true,则执行语句1中的内容,并且跳过语句2.。如果为false,则跳过语句1,执行语句2中的内容。
if-else-if语句
语法:
if(条件1)
{
语句1;
}
else if(条件2)
{
语句2;
}
else
{
语句3;
}
if(条件1)
{
语句1;
}
else if(条件2)
{
语句2;
}
else
{
语句3;
}执行过程:判断条件1是否为true,如果为true,则执行语句1,并且跳过语句块2,和语句块3。如果条件为false,则跳过语句块1进行条件2的判断,如果条件2为true,则执行语句2,且跳过语句块1和3。如果条件2为false,则跳过语句2,执行语句3。
选择结构中的Switch(){ case}的语法
switch (值)
{
case 值1:语句块1;break;
case 值2:语句块 2;break;
……
……
default:语句块3;break;
}
执行过程:先判断switch ()中的值为多少,到case中去匹配,然后执行相对应的语句块。
输入一个年份,输入一个月份,判断有多少天
Console.WriteLine("请您输入一个年份"); //要提示输入一个年份
int year = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请您输入一个月份");
int month = Convert.ToInt32(Console.ReadLine());
switch (month)
{
case 1: //1,3,5,7,8,10,12月有31天
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
Console.WriteLine("{0}的{1}月有31天", year, month); break;
case 4: //4,6,9,11月有20天
case 6:
case 9:
case11:
Console.WriteLine("{0}的{1}月有30天", year, month); break;
case 2:
//判断闰年:年份能够被400整除或者年份能够被4整除但不能被100整除,若是闰年,则有29天,否则只有28天
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
Console.WriteLine("{0}的{1}月有29天", year, month);
}
else
{
Console.WriteLine("{0}的{1}月有28天", year, month);
}
break;
default: Console.WriteLine("您输入有误");
break;
}
while循环的语法
while(循环条件)
{
循环体;
}
执行过程:程序运行到while处,首先判断while后面小括号中的循环条件是否成立,如果成立的话,则执行while所带的大括号中的循环体,如果循环条件不成立,则跳出while循环。
循环体执行完一遍后,再去判断循环条件是否成立,如果成立,则继续执行循环体,如果不成立,则跳出当前循环。
输入班级人数,然后依次输入学员成绩,计算班级的平均成绩和总成绩
Console.WriteLine("请输入班级人数");
int num = Convert.ToInt32(Console.ReadLine());//输入的学生总人数
int i = 0, sum = 0;//i为学生序号,sum为总成绩
double avg;
while (i <= num) //有几个人就循环几次
{
Console.WriteLine("请输入第{0}位学员成绩", i + 1);
int s = Convert.ToInt32(Console.ReadLine());
i++;
sum = s + sum;//sum+=s;
}
avg = (double)sum / num;
Console.WriteLine("这{0}位同学的总成绩为{1},平均成绩为{2}", num, sum, avg);
一般来说,每个循环中,总有那么一行代码,能够改变循环条件,使循环条件终有一天不再成立。如果循环当中,没有没有那么一行代码,能够改变循环条件,也就是说,循环条件永远成立,这种循环叫做死循环。即:
while(true)
{
死循环;
}
do while循环语法
do
{
循环体
}while(条件);
执行过程:程序从上向下运行,首先执行一遍do中的循环体,执行完一遍后,去判断循环条件是否成立,如果成立的话,则继续执行do中的循环体,如果条件不成立的话,则不执行循环体。
先跳一遍 ,老师若是满意,则可以回家了,若是不满意则再 联系一边,直至满意了
string ans;
do
{
Console.WriteLine("小兰把舞蹈跳了一遍");
Console.WriteLine("老师满意了吗(y/n)");
ans = Console.ReadLine();
while (ans != "y" && ans != "n") //控制用户只能输入y和n
{
Console.WriteLine("只能输入y/n,请重新输入");
ans = Console.ReadLine();
}
} while (ans == "n");
//先执行循环体,再判断ans是否等于n,若是不等于n则跳出循环,等于n则继续循环
Console.WriteLine("放学回家吧");
while循环和do while循环的比较:若是循环条件一开始就不成立,对于while循环,有一次都不会执行,对于do-while循环,循环体会执行一次,也就是说do-while的循环体一般至少会执行一次。
for循环语法
for(表达式1;表达式2;表达式3)
{
循环体;
}
表达式1:一般为定义循环次数的初始变量;
表达式2:循环条件;
表达式3:改变循环条件的那个条件
执行过程:第一次开始执行的时候,首先执行表达式1,声明了一个循环的初始变量,然后执行表达式2,判断循环条件是否成立,第一次执行循环的时候,并没有执行表达式3,执行完表达式2之后,开始执行循环体,执行完循环体之后,开始执行表达式3,然后执行表达式2,判断循环条件是否成立,如果成立的话,则执行循环体,如果不成立的话,则跳出for循环。
九九循环表(矩形)
for (int i = 1; i <= 9; i++) //外层循环控制行数 此处定义i为行数
{
//当i=1,输出第一行,而第一行中有9个式子
for (int n = 1; n <= 9; n++) //此处定义n为列数
{
Console.Write("{0}*{1}={2}\t", i, n, i * n);
}
Console.WriteLine("");
}
.三元表达式的语法:
表达式1?表达式2:表达式3
执行过程:先计算表达式1.若表达式1的的值为true,则表达式2的值作为整个表达式的值;
若表达式1的值为false,则表达式3的值作为整个表达式的值
(注意表达式2和表达式3的值的类型必须相同或者相容)
求最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;//此时,a>b的值为false,取b的值作为整个表达式的值
Console.WriteLine(max);
所以输出的结果为20
break:
(1)用于switch-case判断中,用于跳出switch1
(2)用于循环中,用于跳出循环。
注意:只能跳出break当前所在的那个循环,不能跳出所有的循环。
依次输入5个人的年龄,求平均值 ,当输入数据大于100或者小于0时,程序出错,而且此时不要输出平均成绩
int i;
int s = 0;
int age = 0;
for (i = 0; i < 5; i++)
{
try
{
Console.WriteLine("请输入第{0}个的年龄", i + 1);
age = Convert.ToInt32(Console.ReadLine());
if (age > 100 || age < 0)
{
Console.WriteLine("您输入有误");
break; //跳出循环
}
s += age;
}
catch
{
Console.WriteLine("您输入有误");
break; //当输入不是数字的时候,跳出循环
}
}
if (i < 5 == false)
//如果通过break跳出循环,i<5肯定是成立的 而通过break循环跳出是不需要输出平均成绩的
//如果程序执行到这里,并且退出循环不是由于执行了break引起,那么一定是循环本身结束了 即i>=5了
Console.WriteLine("您输入的5个人的平均年龄为:{0}", s / 5);
continue:
用于循环黄总,程序一旦执行到continue语句,立即结束本次循环(不再执行循环体中continue下面的语句了),直接进行下一次循环
(注意:对于do-while和while直接进行下一次循环条件的判断,如果成立,则再次进入循环,对于for循环,先执行表达式3再判断条件是否成立)
用while continue计算1到100之间除了能被7整除之外所有整数的和。(即不能被7整除所有整数的和)
int sum = 0;
int i = 0;
while (i++ < 100)
{
if (i % 7 != 0)
sum += i;
else
continue; //当i%7==0的时候,直接进行i++操作
}
Console.WriteLine(sum);
do-while循环的经典例题(标志位的使用)
让用户输入用户名和密码,只要用户名不是admin和密码不是8888的时候,就提示用户一直输入
string user;
string pass;
bool flag = false;
do
{
flag = false;
//首先将标志位设为false,若是第一就输入正确了,就不执行if条件,并且会跳出循环
Console.WriteLine("请用户输入用户名?");
user = Console.ReadLine();
Console.WriteLine("请用户输入密码?");
pass = Console.ReadLine();
if (user != "admin" || pass != "8888")
{
Console.WriteLine("用户名或密码错误,请重新输入");
flag = true; //当不满足题意的时候,将flag的值赋为true,用作循环使用
}
} while (true); //当不满足题意的时候,一直循环,直到while中的值为false
Console.WriteLine("登录成功!");
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------