目录
一、练习
- 计算半径为5的圆的面积和周长并打印出来,(pi为3.14)面积:pi*r*r,perimeter(周长)
using System; using System.Collections.Generic; using System.Data.SqlTypes; using System.Linq; using System.Text; using System.Threading.Tasks; //引用命名空间 namespace ConsoleAp //命名空间 { internal class Program //类 { static void Main(string[] args) { int radius = 5; double pi = 3.14; double area =( radius * radius) * pi ; double penmeter = radius * pi * 2; Console.WriteLine("圆的面积为:{0},圆的周长为:{1}",area,penmeter); Console.ReadKey(); } } }
2、某商店T恤(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条,小明在该店买了3件T恤和2条裤子,请计算并显示小明打8.8折后的价格?
using System; using System.Collections.Generic; using System.Data.SqlTypes; using System.Linq; using System.Text; using System.Threading.Tasks; //引用命名空间 namespace ConsoleAp //命名空间 { internal class Program //类 { /*某商店T恤(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条,小明在该店买了3件T恤和2条裤子,请计算并显示小明打8.8折后的价格?*/ static void Main(string[] args) { int Tshirt = 35; int trousers = 120; double value = ((3 * Tshirt) + (2 * trousers)) * 0.88; Console.WriteLine("打折后的价格为{0}",value); Console.ReadKey(); } } }
3、我们要求两边参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生自动类型转换(隐式类型转换)
-
两种类型兼容:例如 int和double兼容(数字类型)
-
小的转成大的(隐式类型转换)大的转成小的(强制类型转换)
二、显示类型转换(强制类型转换)
- 两种类型兼容:例如 int和double兼容(数字类型)
- 大的转成小的(强制类型转换)
- 如果一个操作数为double型,则整个表达式可提升为double型
语法:(待转换的类型)要转换的值
注意:强制类型转换是不安全的,可能会导致数据丢失
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //引用命名空间
namespace ConsoleAp //命名空间
{
internal class Program //类
{
/*某商店T恤(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条,小明在该店买了3件T恤和2条裤子,请计算并显示小明打8.8折后的价格?*/
static void Main(string[] args)
{
int n1 = 10;
int n2 = 3;
double d = n1 * 1.0 / n2; //如果一个操作数为double型,则整个表达式可提升为double型
Console.WriteLine("{0:0.00}",d);//保留小数点后两位小技巧
Console.ReadKey();
}
}
}
三、Convert的转换工厂转换
1、类型如果兼容的两个变量,可以使用自动类型转换或者强制类型转换
2、如果两个类型的变量不兼容可以使用Convert的转换工厂进行转换
注意:使用Conver转换:面上必须过的去(看起来能转换就转换,看起来根本转换不了就不转)
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //引用命名空间
namespace ConsoleAp //命名空间
{
internal class Program //类
{
/*某商店T恤(T-shirt)的价格为35元/件,裤子(trousers)的价格为120元/条,小明在该店买了3件T恤和2条裤子,请计算并显示小明打8.8折后的价格?*/
static void Main(string[] args)
{
string s = "123";
//将字符串转换成int或者double类型
double d = Convert.ToDouble(s);
Console.WriteLine(d);
int i = Convert.ToInt32(s);
Console.WriteLine(i);
Console.ReadKey();
}
}
}
四、算数运算符号之(++ /--)
1、++:分为前++和后++,不管是前++还是后++,最终结果都是给这个变量加1;
2、- -: 分为前- -和后- -,不管是前- -还是后- -,最终结果都是给这个变量减1;
区别:前置,先加再运算(先自身加1,再进行运算) 后置,先运算再加(原值先进行运算,然后自身加1)
3、只需要一个操作符称之为一元运算符(eg: ++ /--)
4、需要两个或两个以上操作符称之为二元运算符(eg: + - * % /)
namespace ConsoleAp //命名空间
{
internal class Program //类
{
static void Main(string[] args)
{
int num = 10;
//num++;
//++num;给变量自身加1
//num--;
//--num;给变量自身减1
//int result = 10 + ++num;
int result = 10 + num++;
Console.WriteLine(num);
Console.WriteLine(result);
Console.ReadKey();
}
}
}
如果在一个表达式中有一元和二元运算符,一元的运算符优先级高于二元运算符
五、关系运算符(比较运算)
1、关系运算符返回的结果为bool类型(true / false)
2、 关系运算符( > < ==)
using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //引用命名空间
namespace ConsoleAp //命名空间
{
internal class Program //类
{
static void Main(string[] args)
{
//关系表达式的类型为bool类型
bool b = 1500 > 1;
Console.WriteLine(b);
bool b1 = 1500 < 1;
Console.WriteLine(b1);
bool b2 = 1500 == 1;
Console.WriteLine(b2);
Console.ReadKey();
}
}
}
六、逻辑运算符
1、逻辑运算符 (&&与 ||或 !非 ..........)
2、逻辑运算符两边放的一般是关系表达式 或者 bool类型的值,逻辑表达式的值同样为bool类型
using System;
class Program
{
static void Main()
{
// 输入一个整数
Console.Write("请输入一个整数:");
int number = int.Parse(Console.ReadLine());
// 定义范围
int lowerBound = 10;
int upperBound = 50;
// 判断是否是质数的辅助函数
bool IsPrime(int n)
{
if (n <= 1) return false;
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 3; i * i <= n; i += 2)
{
if (n % i == 0) return false;
}
return true;
}
// 使用所有逻辑运算符
bool isInRange = number >= lowerBound && number <= upperBound;
bool isEven = number % 2 == 0;
bool isNegative = number < 0;
bool isPrime = IsPrime(number);
// 逻辑运算符示例
bool resultAnd = isInRange && isEven; // 与
bool resultOr = isInRange || isNegative; // 或
bool resultNot = !isEven; // 非
bool resultXor = isInRange ^ isPrime; // 异或
// 输出结果
Console.WriteLine($"数字在范围内且是偶数: {resultAnd}");
Console.WriteLine($"数字在范围内或是负数: {resultOr}");
Console.WriteLine($"数字不是偶数: {resultNot}");
Console.WriteLine($"数字在范围内或是质数 (异或): {resultXor}");
}
}
七、复合运算符
1、复合运算符(+= -= *= %= /=)
int num = 10;
num += 10; //==>num= num + 10
num -= 10; //==>num= num - 10
num *= 10; //==>num= num * 10
num /= 10; //==>num= num / 10
num %= 10; //==>num= num % 10