目录
前言
1.算数运算符
1.1 知识点
1.2 练习题
2. 字符串拼接
2.1 知识点
2.2 练习题
3.条件运算符
4.逻辑运算符
5. 位运算符
6.三目运算符
6.1 知识点
6.2 练习题
视频内容来源于bilibili 唐老狮
using System;
namespace lesson10_算数运算符
{
class Program
{
static void Main(string[] args)
{
#region 知识点一 赋值符号
//=
//关键知识点:
//先看右侧 再看左侧 把右侧的值赋给左侧的变量
string myName = "小明";
int myAge = 18;
float myHeight = 182.5f;
#endregion
#region 知识点二 加 +
//用自己计算 先算右侧结果 再赋值给左侧变量
int i = 1;
i = i + 2;
Console.WriteLine(i);
//连续运算 先算右侧结果 再赋值给左侧变量
i = 1 + i + i;
Console.WriteLine(i);
//初始化时就运算 先算右侧结果 再赋值给左侧变量
int i2 = 1 + 2 + 3;
Console.WriteLine(i2);
#endregion
#region 知识点三 减 -
//用自己计算 先算右侧结果 再赋值给左侧变量
int j = 1;
j = j - 1;
Console.WriteLine(j);
//连续运算 先算右侧结果 再赋值给左侧变量
j = 1 - 2 - 3;
Console.WriteLine(j);
//初始化时就运算 先算右侧结果 再赋值给左侧变量
int j2 = 3 - 2 - 1;
Console.WriteLine(j2);
#endregion
#region 知识点四 乘 *
//用自己计算 先算右侧结果 再赋值给左侧变量
int c = 1;
c = c * 10;
Console.WriteLine(c);
//连续运算 先算右侧结果 再赋值给左侧变量
c = 1 * 2 * 3;
Console.WriteLine(c);
//初始化时就运算 先算右侧结果 再赋值给左侧变量
int c2 = 1 * 2 * 3;
Console.WriteLine(c2);
#endregion
#region 知识点五 除 /
//用自己计算 先算右侧结果 再赋值给左侧变量
int chu = 1;
chu = 10 / 2;
Console.WriteLine(chu);
//连续运算 先算右侧结果 再赋值给左侧变量
chu = 20 / 2 / 5;
Console.WriteLine(chu);
//初始化时就运算 先算右侧结果 再赋值给左侧变量
int chu2 = 20 / 5 / 2;
Console.WriteLine(chu2);
#endregion
#region 知识点六 取余 %
int y = 4;
y = y % 2;
Console.WriteLine(y);
y = 20;
y = y % 5 % 3;
Console.WriteLine(y);
#endregion
#region 知识点七 算术运算符的优先级
//优先级 是指 在混合运算时的运算顺序
//乘除取余 优先级高于 加减 先算乘除 后算加减
//括号可以改变优先级 优先计算括号内内容
//多组括号 先算最里层括号 依次往外算
#endregion
#region 知识点八 算术运算符的 复合运算符
//固定写法
//+= -= *= /= %=
//复合运算符 是用于 自己=自己进行运算
//注意:复合运算符 只能进行一种运算 不能混合运算
//例如 i *-+=2;
#endregion
#region 知识点九 算术运算符的 自增减
int a2 = 1;
a2 = a2 + 1;
a2 += 1;
a2++;//先用再加
Console.WriteLine(a2);
++a2;//先加再用
Console.WriteLine(a2);
a2 = 1;
Console.WriteLine(a2++);// 1
a2 = 1;
Console.WriteLine(++a2);// 2
#endregion
}
}
}
using System;
namespace lesson10_算数运算符练习题
{
class Program
{
static void Main(string[] args)
{
#region 习题1
//定义一个变量存储你的年龄,十年后你的年龄是多少,请输出到控制台
int age = 18;
Console.WriteLine("10年后,你的年龄是{0}", age + 10);
#endregion
#region 习题2
//计算一个半径为5的圆的面积和周长
double r = 5;
Console.WriteLine("面积是{0},周长是{1}", 3.14 * r * r, 2 * 3.14 * r);
#endregion
#region 习题3
//计算任意三门成绩的总分,平均分,打印到控制台
//三门成绩均为整形(C#,unity,Math)
int c = 80, u = 90, m = 90;
double sum, ave;
sum = c + u + m;
ave = sum / 3;
Console.WriteLine("总分{0},平均分{1}", sum, ave);
#endregion
#region 习题4
//商店T恤的价格为285元/件,裤子的价格为720元/条
//小李在该店买了2件衣服和3条裤子,小李该付多少钱,打3.8折呢
int t = 285, k = 720;
double s, s1;
s = 2 * t + (3 * k);
s1 = s * 0.38;
Console.WriteLine("小李该付{0}元,打折后需要付{1}元", s, s1);
#endregion
#region 习题5
int a = 10, b = 20;
int number1 = ++a + b;
a = 10;
b = 20;
int number2 = a + b++;
a = 10;
b = 20;
int number3 = a++ + ++b + a++;
//请说明number1,number2,number3的结果
//31,30,42
#endregion
#region 习题6
//有两个数,a=99,b=87,请写出两种方法交换他们的值
int a1 = 99, b1 = 87;
//int c1 = a1;
//a1 = b1;
//b1 = c1;
//Console.WriteLine("a={0},b={1}", a1, b1);
//a1 = a1 + b1;
//b1 = a1 - b1;
//a1 = a1 - b1;
//Console.WriteLine("a={0},b={1}", a1, b1);
#endregion
#region 习题7
//请把987652秒通过代码转成n天n小时n分n秒显示在控制台上
int time = 987652;
//60*60*24
int day1 = 60 * 60 * 24;
int hour1 = 60 * 60;
int min1 = 60;
int day = time / day1;
int hour = time % day1 / hour1;
int min = time % hour1 / min1;
int miao = time % min1;
Console.WriteLine("{0}天{1}时{2}分{3}秒", day, hour, min, miao);
#endregion
}
}
}
using System;
namespace lesson11_字符串拼接
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("字符串拼接");
#region 字符串拼接方式一
//之前的算术运算符 只是用来数值类型变量进行数学运算的
//而 string 不存在算术运算符不能计算 但是可以通过+号来进行字符串拼接
string str = "123";
//用+号进行字符串拼接
str = str + "456";
Console.WriteLine(str);
str = str + 1;
Console.WriteLine(str);
//复合运算符 +=
str = "123";
str += "1" + 4 + true;
Console.WriteLine(str);//12314True
str += 1 + 2 + 3 + 4;
Console.WriteLine(str);//12314True10
str += "" + 1 + 2 + 3 + 4;
Console.WriteLine(str);//12314True101234
str = "";
str += 1 + 2 + "" + 3 + 4;
Console.WriteLine(str);//334
str = "";
str += 1 + 2 + "" + (3 + 4);
Console.WriteLine(str);//37
//注意:用+号拼接 是用符号唯一方法 不能用-*/%...
#endregion
#region 字符串拼接方式二
//固定语法
//string.Format("待拼接的内容",内容1,内容2....);
//拼接内容中的固定规则
//想要被拼接的内容用占位符替代{数字} 数字:0到n 依次往后
string str2 = string.Format("我是{0},我今年{1}岁,我想要{2}", "小明", "21", "好好学习,天天向上!");
Console.WriteLine(str2);
str2 = string.Format("{0}{1}{2}", 1, true, false);
Console.WriteLine(str2);
#endregion
#region 控制台打印拼接
Console.WriteLine("A{0}B{1}C{2}", 1, true, false);
//内容比占位符多没事,比占位符少会报错
#endregion
}
}
}
using System;
namespace lesson11_字符串拼接练习题
{
class Program
{
static void Main(string[] args)
{
#region 习题1
//定义一个变量存储客户的姓名,然后在屏幕上显示:“你好,XXX”
//XXX代表客户的姓名
string name = "小明";
Console.WriteLine("你好,{0}", name);
#endregion
#region 习题2
//定义两个变量,一个存储客户的姓名,另一个存储年龄,
//然后在屏幕上显示:“XXX+YYY岁了”。XXX代表客户的姓名,yyy代表年龄
//举例:唐老师18岁了
string name1 = "小明";
int age1 = 18;
Console.WriteLine("{0}{1}岁了", name1, age1);
#endregion
Console.WriteLine();
#region 习题3
//当我们去面试时,前台会要求我们填一张表格,有姓名,年龄,邮箱,家庭住址,期望薪资,请把这些信息在控制台输出
string name2 = "小明";
int age = 18;
string str = "[email protected]";
string add = "中国";
int money = 1000;
Console.WriteLine("姓名:{0}", name2);
Console.WriteLine("年龄:{0}", age);
Console.WriteLine("邮箱:{0}", str);
Console.WriteLine("家庭住址:{0}", add);
Console.WriteLine("期望薪资:{0}", money);
#endregion
#region 习题4
//请用户输入用户名,年龄,班级,最后一起用到占位符形式打印出来
Console.WriteLine("输入用户名:");
string name4 = Console.ReadLine();
Console.WriteLine("输入年龄:");
string age4 = Console.ReadLine();
Console.WriteLine("输入班级:");
string class4 = Console.ReadLine();
Console.WriteLine("{0},{1},{2}", name4, age4, class4);
#endregion
}
}
}
using System;
namespace lesson12_条件运算符
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("条件运算符");
#region 知识点一 条件运算符
//作用:用于比较两个变量或常量
//是否大于 >
//是否小于 <
//是否等于 ==
//是否不等于 !=
//是否大于等于 >=
//是否小于等于 <=
//条件运算符 一定存在左右两边的内容
//左边内容 条件运算符 右边内容
int a = 5;
int b = 10;
//条件运算符 不能直接这么用
//纯比较不用结果 那么对于我们来说 没有任何的意义
//a>b;
//比较的结果 返回的是一个 bool 类型的值
//true 和 false 如果比较的条件满足 那就返回 true 不满足 就返回 false
//先算右边 再赋值给左边
bool result = a > b;
Console.WriteLine(result);
result = a < b;
Console.WriteLine(result);
result = a >= b;
Console.WriteLine(result);
result = a <= b;
Console.WriteLine(result);
result = a == b;
Console.WriteLine(result);
result = a != b;
Console.WriteLine(result);
#endregion
#region 知识点二 各种应用写法
//变量和变量比较
a = 5;
b = 10;
result = a < b;
//变量和数值(常量)比较
result = a < 10;
//数值和数值比较
result = 5 < 10;
result = a == b;
result = a != b;
//计算结果比较
//条件运算符 优先级 低于算术运算符
result = a + 3 > a - 2 + 3;
#endregion
#region 知识点三 不能进行范围比较
a = 5;
//判断是否在某两个值之间
//1 123;
result = c > 'B';
#endregion
}
}
}
using System;
namespace lesson13_逻辑运算符
{
class Program
{
static void Main(string[] args)
{
//对bool类型 进行逻辑运算
#region 知识点一 逻辑与
//符号 &&
//规则 对两个bool值进行逻辑运算 有假则假 同真为真
bool res = true && false; //false
bool res1 = true && true; //true
//bool相关的类型 bool变量 条件运算符
//逻辑运算符优先级 低于 条件运算符 算数运算符
res = 3 > 1 && 1 < 2; //true
int i = 3;
res = i > 1 && i < 5;
//多个逻辑与 组合运用
int i2 = 5;
res = i2 > 1 && i2 < 5 && i > 1 && i < 5; //false
#endregion
#region 知识点二 逻辑或
//符号 ||
//规则 对两个bool值进行逻辑运算 有真则真 同假为假
res = true || false; //true
res = false || false; //false
//true || false
res = 3 > 10 && 3 < 5; //true
#endregion
#region 知识点三 逻辑非
//符号 !
//规则 对两个bool值进行取反 真变假 假变真
//逻辑非的 优先级 较高
res = !(3 > 2); //false
#endregion
#region 知识点四 混合使用优先级问题
//规则 !(逻辑非)优先级最高 &&(逻辑与)优先级高于 ||(逻辑或)
//逻辑运算符优先级低于 算数运算符 条件运算符
#endregion
#region 知识点五 逻辑运算符短路规则
int i3 = 1;
// || 有真则真
//只要逻辑与或者逻辑或 左边满足了条件
//i3 > 0 true
//只要 满足条件 右边的内容 对于我们来说 已经不重要了
res = i3 > 0 || ++i3 >= 1;
//false && i3++ > 1 抛弃后面不去计算
res = i3 < 0 && ++i3 > 1;
#endregion
}
}
}
using System;
namespace lesson14_位运算符
{
class Program
{
static void Main(string[] args)
{
//位运算符 主要用于数值类型进行计算的
//将数值转换为2进制 再进行位运算
#region 位与 &
//规则 连接两个数值进行位运算 将数值转换为2进制
//对位运算 有0则0
int a = 1;//1
int b = 5;//101
// 001
//&101
// 001=1
int c = a & b;
Console.WriteLine(c);//1
a = 3; //00011
b = 19; //10011
c = a & b;//00011=3
Console.WriteLine(c);//3
#endregion
#region 位或 |
//规则 连接两个数值进行位运算 将数值转换为2进制
//对位运算 有1则1
int a2 = 1;//1
int b2 = 5;//101
// 001
// | 101
// 101=5
int c2 = a2 | b2;
Console.WriteLine(c2);//5
a2 = 3; // 00011
b2 = 19; // | 10011
c2 = a2 | b2; // 10011=19
Console.WriteLine(c2);//19
#endregion
#region 异或 ^
//规则 连接两个数值进行位运算 将数值转换为2进制
//对位运算 相同为0 不同为1
int a3 = 1;//1
int b3 = 5;//101
// 001
// ^ 101
// 100=4
int c3 = a3 ^ b3;
Console.WriteLine(c3);//4
a3 = 3; // 00011
b3 = 19; // ^ 10011
c3 = a3 ^ b3; // 10000=16
Console.WriteLine(c3);//16
#endregion
#region 位取反 ~
//规则 连接两个数值进行位运算 将数值转换为2进制
//对位运算 0变1 1变0
int a4 = 5;
// 0000 0000 0000 0000 0000 0000 0000 0101
// ~1111 1111 1111 1111 1111 1111 1111 1010
// 反码补码知识
int c4 = ~a4;
Console.WriteLine(c4);//-6
#endregion
#region 左移<< 和 右移 >>
//规则 让一个数的2进制进行左移和右移
//左移几位 右侧加几个0
a = 5;//101
c = a << 5;//10100000=160
Console.WriteLine(c);//160
//右移几位 右侧去掉几个数
a = 5;//101
c = a >> 2;//1
Console.WriteLine(c);//1
#endregion
}
}
}
using System;
namespace lesson15_三目运算符
{
class Program
{
static void Main(string[] args)
{
#region 基本语法
//套路 3个空位 2个符号!!!
//固定语法 空位 ? 空位 :空位;
//关键信息 bool类型 ? bool类型为真返回内容 :bool内容为假返回内容;
//三目运算符 会有返回值,这个返回值类型必须一致,并且必须使用!
#endregion
#region 具体使用
string str = true ? "条件为真" : "条件为假";
Console.WriteLine(str);
string str2 = false ? "条件为真" : "条件为假";
Console.WriteLine(str2);
int a = 5;
str = a < 1 ? "条件为真" : "条件为假";
Console.WriteLine(str);
//第一个空位 始终是结果为bool类型的表达式 bool变量 条件表达式 逻辑运算符表达式
//第二三个空位 什么表达式都可以 只要保证他们的结果类型是一致的
//int i1 = a > 1 ? 123 : 423;
//bool b = a ? a > 6 : !false;
#endregion
}
}
}
using System;
namespace lesson15_三目运算符练习题
{
class Program
{
static void Main(string[] args)
{
#region 习题1
//比较两个数的大小,求出最大的
int str = 5 > 6 ? 5 : 6;
Console.WriteLine(str);
#endregion
#region 习题2
//提示用户输入一个姓名,然后在控制台输出姓名,只要输入的不是帅哥,就显示美女
Console.Write("输入姓名:");
string name0 = Console.ReadLine();
string m = name0 == "帅哥" ? "帅哥" : "美女";
Console.WriteLine(m);
#endregion
#region 习题3
//依次输入学生的姓名,C#的成绩,unity的成绩,两门成绩都大于90,才能毕业,输出最后的结果
Console.WriteLine("姓名:");
string name = Console.ReadLine();
Console.WriteLine("C#成绩:");
int c = int.Parse(Console.ReadLine());
Console.WriteLine("unity成绩:");
int u = int.Parse(Console.ReadLine());
string m1 = (c > 90 && u > 90) ? "毕业" : "不能毕业";
Console.WriteLine("{0},{1}", name, m1);
#endregion
#region 习题4
//要求用户输入一个年份,然后判断是不是闰年
//闰年判断条件:
//能被400整除(2000)
//或者能被4整除,但不能被100整除(2008)
Console.WriteLine("输入年份:");
int year = int.Parse(Console.ReadLine());
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0)
{
Console.WriteLine("{0}是闰年", year);
}
else
{
Console.WriteLine("{0}不是闰年", year);
}
#endregion
}
}
}