0.前备知识
(1) 主函数结构 会就行
using System;//头文件
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication2
{
class Program
{
static void Main( string[] args )
{
}
}
}
(2)数据类型与常量
整数类型
byte
:无符号的8位整数(0-255)。sbyte
:有符号的8位整数(-128到127)。short
(或Int16
):有符号的16位整数。ushort
(或UInt16
):无符号的16位整数。int
(或Int32
):有符号的32位整数。uint
(或UInt32
):无符号的32位整数。long
(或Int64
):有符号的64位整数。ulong
(或UInt64
):无符号的64位整数。
浮点数类型
float
:单精度浮点数。double
:双精度浮点数。
小数类型
decimal
:小数点数,用于需要高精度的财务计算。
字符类型
char
:表示一个单独的Unicode字符。
布尔类型
bool
:表示布尔逻辑值true
或false
。
1.数据的输入
(1)单个变量的输入与输出
string input = "1234"; // 假设这是用户输入或其他来源的字符串
int number;
bool isSuccess = int.TryParse(input, out number);
if (isSuccess)
{
// 转换成功,number 包含了转换后的整数
Console.WriteLine("转换成功,整数为: " + number);
}
else
{
// 转换失败,input 不是一个有效的整数字符串
Console.WriteLine("转换失败,输入的字符串不是一个有效的整数。");
}
Console.Write( "请输入一个整数:" );
int inputInt = Convert.ToInt32( Console.ReadLine() );
Console.WriteLine( "输入的整数是:" + inputInt );
Console.Write( "请输入一个小数:" );
double inputDouble = Convert.ToDouble( Console.ReadLine() );
Console.WriteLine( "输入的小数是:" + inputDouble );
Console.Write( "请输入一个布尔值(true/false):" );
bool inputBool = Convert.ToBoolean( Console.ReadLine() );
Console.WriteLine( "输入的布尔值是:" + inputBool );
Console.Write( "请输入一个字符:" );
char inputChar = Console.ReadKey().KeyChar;
Console.WriteLine( "输入的字符是:" + inputChar );
Console.Write("请输入一个值:");
dynamic inputDynamic = Console.ReadLine();
Console.WriteLine("输入的值是:" + inputDynamic);
Console.Write( "请输入一个字符串:" );
string inputString = Console.ReadLine();
Console.WriteLine( "输入的字符串是:" + inputString );
(2)多个变量的输入
int num1, num2, num3;
Console.Write("请输入三个整数,用空格分隔:");
string inputLine = Console.ReadLine();
string[] inputs = inputLine.Split(' ', StringSplitOptions.RemoveEmptyEntries);
if (inputs.Length == 3 && int.TryParse(inputs[0], out num1) &&
int.TryParse(inputs[1], out num2) && int.TryParse(inputs[2], out num3))
{
// 所有三个数都成功读取
Console.WriteLine($"您输入的整数分别是:{num1}, {num2}, {num3}");
}
else
{
Console.WriteLine("输入无效,请输入三个且仅有三个以空格分隔的整数。");
}
(3)读入一个数组
Console.Write("请输入数组的元素个数:");
int size = Convert.ToInt32(Console.ReadLine());
int[] inputArray = new int[size];
for (int i = 0; i < size; i++)
{
Console.Write($"请输入第 {i + 1} 个元素:");
inputArray[i] = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("输入的数组是:");
foreach (int element in inputArray)
{
Console.WriteLine(element);
}
(4)读入一个结构体
struct Point
{
public int X { get; set; }
public int Y { get; set; }
public void Input()
{
Console.Write("请输入X坐标:");
X = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入Y坐标:");
Y = Convert.ToInt32(Console.ReadLine());
}
}
Point inputPoint = new Point();
inputPoint.Input();
Console.WriteLine("输入的点坐标是:({0}, {1})", inputPoint.X, inputPoint.Y);
2.格式化输出与占位符
(0)占位符的使用
在C#中,占位符主要用于字符串格式化,它们允许你定义如何在字符串中插入和显示变量或表达式的值。以下是一些常用的占位符及其说明:
(1)基本数字占位符
{Index}
: 指定参数的位置。Index
是一个从0开始的数字,表示String.Format
中的参数顺序或复合格式字符串中的位置。{Index:Format}
:Format
指定了如何格式化参数。
(2)数字格式化说明符
C
或c
: 货币格式。D
或d
: 十进制格式。E
或e
: 科学计数法格式。F
或f
: 固定点数格式,后面通常跟数字,表示小数点后的位数。N
或n
: 数值格式,包括千位分隔符。P
或p
: 百分比格式。
(3)日期和时间格式化说明符
d
: 日期格式。t
: 时间格式。f
: 日期和时间的完整格式。
(4)其他格式化说明符
G
: 通用格式,根据数值类型自动选择适当的格式。X
或x
: 十六进制格式。
(5)对齐和宽度
,Width
: 指定输出的最小宽度。如果内容比指定的宽度宽,则整个内容会被输出;如果短,则用空格填充。,-Width
: 指定左对齐输出。
(6)示例
以下是一些使用占位符的示例:
int number = 123;
double pi = 3.14159;
DateTime date = DateTime.Now;
// 固定点数格式,保留两位小数
string message1 = String.Format("The number is: {0:F2}", number);
Console.WriteLine(message1);
// 货币格式
string message2 = String.Format("The price is: {0:C}", number);
Console.WriteLine(message2);
// 科学计数法格式
string message3 = String.Format("The value of pi is: {0:E2}", pi);
Console.WriteLine(message3);
// 日期格式
string message4 = String.Format("Today is: {0:d}", date);
Console.WriteLine(message4);
// 左对齐,宽度为10
string message5 = String.Format("Left aligned: {0,-10}", "Text");
Console.WriteLine(message5);
// 右对齐,宽度为10
string message6 = String.Format("Right aligned: {0,10}", "Text");
Console.WriteLine(message6);