主要内容
类型转换
1、类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,
2、如果两个类型的变量不兼容,比如 string与int或者string 与double,
这个时候我们可以使用一个叫做Convert的转换工厂进行转换。
注意:使用Convert进行类型转换,也需要满足一个条件:
面儿上必须要过的去。
static void Main(string[] args)
{
//显示类型转换 、自动类型转换 (类型需要兼容)
//double->int int->double
string s = "13232";
//将字符串转换成 int 或者 double 类型
int n = Convert.ToInt32(s);
double d = Convert.ToDouble(s);
Console.WriteLine(n);
Console.WriteLine(d);
//让用户输入姓名 语文数学 英语 三门课的成绩
//然后给用户提示 xx,你的总成绩xx分,平均成绩xx分。
Console.WriteLine("请输入姓名");
string name = Console.ReadLine();
Console.WriteLine("请输入语文成绩");
double chineseScore = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入数学成绩");
double matheScore = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入英语成绩");
double englishScore = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("{0},你的总成绩{1}分,平均成绩{2:0.00}", name, chineseScore + matheScore + englishScore, (chineseScore + matheScore + englishScore) / 3);
Console.ReadKey();
}
Convert 支持的转换类型有很多,可以通过 To来查看支持类型
{2:0.00} 保留两位小数
算数运算符
++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加1。
区别表现表达式当中,如果是前++,则先给这个变量自身加1,然后带着这个加1后的值去参与运算。
如果是后++,则先拿原值参与运算,运算完成后,再将这个变量自身加1。
--:同上。
关系运算符
>> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于
!= 不等于
关系运算符是用来描述两个事物之间的关系
由关系运算符连接的表达式称之为关系表达式。
bool类型
在c#中我们用bool类型来描述对或者错。
bool类型的值只有两个 一个true 一个false
逻辑运算符
&& 逻辑与
|| 逻辑或
! 逻辑非
与逻辑运算符连接的表达式叫做逻辑表达式
逻辑运算符两边放的一般都是关系表达式或者bool类型的值。
5>3 && true
3>5 || false
!表达式
逻辑表达式的结果同样也是bool类型
小例子
static void Main(string[] args)
{
//让用户输入小明的语文和数学成绩,输出以下判断是否正确
//1、小明的语文和数学成绩都大于90
//2、语文和数学有一门是大于90分的
Console.WriteLine("请输入小明的语文成绩");
double chineseScore = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("请输入小明的数学成绩");
double mathScore = Convert.ToDouble(Console.ReadLine());
bool result = chineseScore > 90 && mathScore > 90;
Console.WriteLine("小明的语文和数学成绩都大于90 {0}",result);
bool result2 = chineseScore > 90 || mathScore > 90;
Console.WriteLine("语文和数学有一门是大于90分的 {0}", result2);
Console.ReadKey();
}
闰年判断
static void Main(string[] args)
{
//判断闰年
//年份能够被400整除
//或年份能够被4整除但不能被100整除
Console.WriteLine("请输入一个年份");
int year = Convert.ToInt32(Console.ReadLine());
bool result = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
Console.WriteLine("该年份是闰年 {0}", result);
Console.ReadKey();
}
复合赋值运算符
int number=10;
+= :
number+=20;相当于number = number + 20;
-=
number-=5;相当于number=number-5;
=
number=5;相当于number=number*5;
/= 同理
%= 同理
结构
顺序结构:程序从Main函数进入,从上到下一行一行的执行,不会落下任何一行。
分支结构 : if if-else
选择结构:if else-if switch-case
循环结构:while do-while for foreach
- if语句
语法:
if(判断条件)
{
要执行的代码;
}
判断条件:一般为关系表达式或者bool类型的值。
执行过程:程序运行到if处,首先判断if所带的小括号中的判断条件,
如果条件成立,也就是返回true,则执行if所带的大括号中的代码,
如果判断条件不成立,也就是返回一个false。则跳过if结构,继续向下执行。
if结构的特点:先判断,再执行,有可能一行代码都不执行
用于一种情况的判断。
static void Main(string[] args)
{
//如果跪键盘的时间大于60分钟,呢么媳妇奖励晚饭不用做了
Console.WriteLine("输入你跪键盘的时间");
int minute = Convert.ToInt32(Console.ReadLine());
//如果你想表示的含义是当 minute > 60 的值为 true时去执行 if中的代码
//那么 语法史昂 == true 可以省略
//但是,如果你想表示的是当 minute 》 60 的值为 false的时 去执行 if中的代码
//语法上 == false 不能省略
if (minute > 60 == true)
{
Console.WriteLine("很好你不用做晚饭了");
}
Console.ReadKey();
}
- if-else
语法:
if(判断条件)
{
执行的代码;
}
else
{
执行的代码
}
执行过程:程序执行到if处,首先判断if所带的小括号中的判断条件是否成立,
如果成立,也就是返回一个true,则执行if所带的大括号中的代码,
执行完成后,跳出if-else结构。
如果if所带的小括号中的判断条件不成立,也就是返回一个false,
则跳过if语句,执行else所带的大括号中的语句,执行完成后,跳出if-else结构。
if-else特点:先判断,再执行,最少都要执行一条代码。
用于两种情况的判断
注意:else永远跟离它最近的那个if配对
static void Main(string[] args)
{
//如果跪键盘的时间大于60分钟,呢么媳妇奖励晚饭不用做了
Console.WriteLine("输入你跪键盘的时间");
int minute = Convert.ToInt32(Console.ReadLine());
//如果你想表示的含义是当 minute > 60 的值为 true时去执行 if中的代码
//那么 语法史昂 == true 可以省略
//但是,如果你想表示的是当 minute 》 60 的值为 false的时 去执行 if中的代码
//语法上 == false 不能省略
if (minute > 60 == true)
{
Console.WriteLine("很好你不用做晚饭了");
}
else {
Console.WriteLine("哟呵,很有骨气嘛 晚饭别吃了");
}
Console.ReadKey();
}
- if else-if
作用:用来处理多条件的区间性的判断。
语法:
if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
else if(判断条件)
{
要执行的代码;
}
........
else
{
要执行的代码;
}
执行过程;程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,
则执行该if所带的大括号中的代码,执行完成后,立即跳出if else-if结构。
如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带
的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,
如果每个if所带的判断条件都不成立,就看当前这个if else-if结构中是否存在else。
如果有else的话,则执行else中所带的代码,如果没有else,则整个 if-else if神马都不做。
else可以省略。
往期回顾