穿越?C#修炼世界第一天:练气入门02

Source

从今天开始,我正式踏入 C# 的修炼世界。

我加入了 AIGC 宗门,并拜入了 C# 峰,成为 陈峰主 的一名弟子。

他赐予了我一件法器——控制台。

此物可吐纳文字、接引输入、演化计算。今日便用它修习至练气入门。


今日功法速览

功法/法器

用途说明

Console.WriteLine()

口诵真言,输出一行文字,自动换行

Console.Write()

输出文字,不换行,留待后续接续

Console.ReadLine()

接引外界输入,返回的是字符串

Convert.ToInt32()

炼化术:把字符串炼成整数灵力

int 变量

装灵力的容器,只能存整数

+ - * / %

五行基础术:加、减、乘、除、取余

$"..." 字符串插值

融合术:把变量直接嵌入字符串,最优雅的拼接法门


作业一:输出古诗《春思》

题目要求:在控制台输出李白的《春思》。

修炼思路:这是最简单的入门题。催动法器 Console.WriteLine(),一句一行把诗文诵出,关键是注意换行和排版。

Console.WriteLine("     李白:春思");

Console.WriteLine("燕草如碧丝,秦桑低绿枝。");

Console.WriteLine("当君怀归日,是妾断肠时。");

Console.WriteLine("春风不相识,何事入罗帏。");

运行效果:


⚠️ 注意:字符串必须用英文双引号括起来。中文标点可以随便用,但引号一旦用错,功法立刻反噬报错。

CS1011: 应输入字符
CS1002: 应输入 ;
CS0103: 名称“燕草如碧丝”不存在

作业二:输出个人信息

题目要求:按指定格式输出姓名、性别、年龄。

修炼思路:一行真言,用空格分隔多个信息,直接诵出。

Console.WriteLine("我的姓名:大帅哥 我的性别:男 我的年龄:18");

运行效果:


作业三:输出简易日历

题目要求:输出一周日历,第一行是星期,下面是日期数字。

修炼思路:注意数字之间的空格要对齐,纯字符串输出即可,考的是耐心与眼力。

Console.WriteLine("日 一 二 三 四 五 六");

Console.WriteLine("         1 2 3 4 5");

Console.WriteLine("6  7  8  9  10 11 12");

Console.WriteLine("13 14 15 16 17 18 19");

运行效果:

小技巧:两位数(10、11、12…)比一位数占位更宽,记得多补空格才能对齐,这也是修炼心性的排版题。


作业四:接收两个数字,求它们的和

题目要求:用户输入两个整数,程序输出它们的和。

修炼思路:Console.ReadLine() 接引回来的是字符串,必须先施炼化术 Convert.ToInt32() 转成整数灵力才能相加。这一步最容易被忽略,也是新手最容易走火入魔的地方。

Console.Write("请输入一个整数:");

int num1 = Convert.ToInt32(Console.ReadLine());

Console.Write("请输入第二个整数:");

int num2 = Convert.ToInt32(Console.ReadLine());

Console.WriteLine($"第一个数 + 第二个数 = {num1 + num2}");

运行效果(示例输入 10 和 5):


⚠️ 走火入魔预警:若不做炼化直接相加,字符串会拼接而非相加,比如 "10" + "5" 得到的竟是 105!一定要先转成 int。

另外融合术 $"..." 里可以直接写 {num1 + num2} 这个表达式,法器会自动先算出结果再输出。


作业五:加减乘除取余全家桶

题目要求:接收两个数,求它们的和、差、乘积、商和余数。

修炼思路:五行基础术 + - * / % 一次性全部施展。其中 / 是除法、% 是取余数。

Console.Write("请输入第一个数:");
int number3 = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入第二个数:");
int number4 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine($"{number3} + {number4} = " + (number3 + number4));
Console.WriteLine($"{number3} - {number4} = " + (number3 - number4));
Console.WriteLine($"{number3} * {number4} = " + (number3 * number4));
Console.WriteLine($"{number3} / {number4} = " + (number3 / number4));
Console.WriteLine($"{number3} % {number4} = " + (number3 % number4));

运行效果:

修炼要点:int 除以 int 结果还是整数,30 ÷ 4 = 7(小数部分被直接丢弃,不是四舍五入);% 取余数 30 % 4 = 2。这两个特性一定要记牢,日后进阶常考。


作业六:输出我自己的个人信息

题目要求:效果图如下。

修炼思路:

Console.WriteLine("=== 个人资料录入 ===");
Console.WriteLine("注意不同变量的数据类型");

Console.Write("请输入您的名字:");
string name = Console.ReadLine();

Console.Write("请输入您的年龄:");
int age = Convert.ToInt32(Console.ReadLine());

Console.Write("请输入您的性别:");
string sex = Console.ReadLine();

Console.Write("请输入您的收入:");
double earnings = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("请输入您的爱好:");
string hobby = Console.ReadLine();

Console.WriteLine("====================");
Console.WriteLine("您输入的信息是:");
Console.WriteLine($"姓名:{name}");
Console.WriteLine($"年龄:{age}");
Console.WriteLine($"性别:{sex}");
Console.WriteLine($"收入:{earnings}");
Console.WriteLine($"爱好:");
Console.WriteLine(hobby);

Console.ReadKey();

运行效果:

=== 个人资料录入 ===
注意不同变量的数据类型
请输入您的名字:突击兔子06
请输入您的年龄:20
请输入您的性别:男
请输入您的收入:99999
请输入您的爱好:
吃东西,喝东西,玩东西,看东西,听东西,摸东西
====================
您输入的信息是:
姓名:突击兔子06
年龄:20
性别:男
收入:99999
爱好:
吃东西,喝东西,玩东西,看东西,听东西,摸东西

提升题(选做):购物结算功法

修炼思路

这是练气期综合试炼,需要同时操控字符串、小数、整数三种不同灵力类型,接收物品信息、计算总价、完成找零,考验数据类型的精准把控与格式化输出。

完整功法代码
Console.WriteLine("=======购买清单=======");
Console.WriteLine("注意不同变量的数据类型");

Console.Write("请输入您购买的物品名称:");
string gmname = Console.ReadLine();

Console.Write("请输入您购买物品的价格:");
double price = Convert.ToDouble(Console.ReadLine());

Console.Write("请输入您购买的物品的个数:");
int gmnumber = Convert.ToInt32(Console.ReadLine());

Console.Write("请输入您付的钱数:");
double money = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("====================");
Console.WriteLine($"您购买的商品:{gmname}");
Console.WriteLine($"价格:{price:F1}");
Console.WriteLine($"个数:{gmnumber}");
Console.WriteLine($"您应该付的钱:{price * gmnumber:F1}");
Console.WriteLine($"您实际付的钱:{money:F1}");
Console.WriteLine($"找给您的钱:{(money - price * gmnumber):F1}");

Console.ReadKey();
运行效果(示例输入)
=======购买清单=======
注意不同变量的数据类型
请输入您购买的物品名称:香蕉
请输入您购买物品的价格:17.5
请输入您购买的物品的个数:4
请输入您付的钱数:100
====================
您购买的商品:香蕉
价格:17.5
个数:4
您应该付的钱:70.0
您实际付的钱:100.0
找给您的钱:30.0
修炼要点
  1. 类型分明:物品名是字符串string,价格、钱数是小数double,个数是整数int,三者不可混用。
  2. 格式化输出::F1 让金额统一保留一位小数,输出整齐规范。
  3. 运算优先级:乘法优先级高于减法,price * gmnumber 会自动先算总价,再用实付金额减去总价得到找零。
    ⚠️ 走火入魔预警
    • Convert.ToDouble 和 Convert.ToInt32 不可写反,若把个数用 ToDouble 接收、价格用 ToInt32 接收,会出现精度丢失或编译报错。
    • 找零的表达式外层必须加括号:(money - price * gmnumber):F1,否则格式符只会作用在最后一个数字上。

    今日修炼总结

    练气第一日,我掌握了 C# 的"三板斧":

    1. 输出:Console.WriteLine() / Console.Write(),会输出才会显化;
    1. 输入:Console.ReadLine() 拿到的是字符串,用 Convert.ToInt32() 炼化成数字才能计算;
    1. 运算:+ - * / % 五个基本术,注意整数除法和取余的特殊规则。

    最让我惊喜的是融合术 $"..."——把变量直接写进大括号里,不用像以前那样辛苦拼接引号和加号,代码又短又清楚,当真是峰主赐下的好法门。


    (本文为个人修炼记录,功法均在 .NET 控制台应用下编译运行通过。如有谬误欢迎指正,一同精进。)