学习了Main方法和数据类型后,今天我们就来学习控制台的输入和输出方法,实现简单的代码效果。
在c语言中如果想打印一句话到控制台的话使用的是printf("这里写要显示在控制台上的话"),在c#语言中,我们的代码语言书写更加流畅,如果你有一点英语基础学习起来就跟方便了。
首先让我们来学习一个类,Console控制台类,对于控制台的一些操作以及特性都可以在Console类的成员中找到,下面是关于控制台输出的代码:
控制台输出
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
6
namespace 控制台练习
7
{
8
class 控制台输入输出
9
{
10
static void Main(string[] args)
11
{
12
//使用“”括起要显示在控制台上的语句,如提示语句。
13
Console.WriteLine("我会显示在控制台上,而且输出后光标自动换行。");
14
Console.Write("如果用write方法输出,光标不会换行。");
15
}
16
}
17
}
18
请按住ctrl+F5执行如上代码,注意如果出现如下界面,请双击错误提示,定位到错误代码,根据修改提示进行修改,直到生成成功,能够运行。
比如我现在的错误提示表明,控制台练习下包含两个Main方法,如果出现这个问题,就目前的情况来看,你可以重新创建一个控制台程序。
显示效果:
我会显示在控制台上,而且输出后光标自动换行。
如果用write方法输出,光标不会换行。请按任意键继续. . .
执行后出现的“请按任意键继续…”为控制台自动显示,你会发现这句话和第二句在同一行显示。
下面我们使用变量来输出如上的效果:
使用变量输出
1 static void Main(string[] args)
2 {
3 //定义一个string类型的变量hhxs(换行显示)
4 string hhxs = "我会显示在控制台上,而且输出后光标自动换行。";
5
6 //输出变量hhxs的值:注意此时不应该给变量加双引号,否则将输出hhxs这四个字母,而不是变量在内存中存放的正真的值
7 Console.WriteLine(hhxs);
8
9 //定义一个string类型的变量bhhxs(不换行显示)
10 string bhhxs = "如果用write方法输出,光标不会换行。";
11
12 //使用'+'符号,将输出字符串和变量bhhxs的值拼接在一起的效果。
13 Console.Write("使用+号拼接字符串:"+bhhxs);
14 }
效果我会显示在控制台上,而且输出后光标自动换行。
使用+号拼接字符串:如果用write方法输出,光标不会换行。请按任意键继续. . .
这种使用变量的输出方式是今后学习的重点,特别是使用‘+’号字符串的连接,下面来写练习这样的效果:
请输入你的用户名:
请按任意键继续. . .
代码如下:
string yhm = "请输入你的用户名:";
Console.WriteLine(yhm);
请同学们考虑一下,如果用户在你的程序的控制台下写下他的用户名为:毛驴,然后实现这样的效果:
习题一
请输入你的用户名:毛驴
你的用户名为毛驴
请按任意键继续. . .
大家要想到的是,第二句的“你的用户名为”后面的“毛驴”是因为用户填写的不同而随着改变,这是就需要将用户所写在控制台上的内容读取下来,先存在一个变量里面,然后再把这个变量显示出来,是就是这个效果的思路,那么如何读取控制台的输入内容呢?C#就提供了一个ReadLine()的方法,用英语翻译一下就能记住“读一行”,当用户输入结束后,按一下Enter回车键这个方法便会读取的用户写的内容,接下来就应该考虑读完内容后要存在变量里,这个变量应该定义为什么类型的呢?用户写在了控制台上,无论写的是数字还是文字,都是一种文本的形式,所以我们应该定义一个string类型的变量来存放,现在大家试着写一下这段代码:
Code
1 Console.Write("请输入你的用户名:");
2 //读取后的内容存放在name变量里
3 string name = Console.ReadLine();
4 //然后将name变量输出出来,这样就达到了输出结果随用户的填写内容而改变
5 Console.WriteLine("你的用户名为"+name);
现在大家应该牢牢记住的是第3行代码,即将用户写的内容用ReadLine()方法读取后存放在string类型的变量里,需要你们突破习惯思维的是,如果用户输入的数字,读取这个数字后也应该存放在string类型的变量里,原因是这个数字是以文本的形式写出来的。
现在请大家继续写代码实现如下效果:
习题二
请输入你的用户名:大灰狼
你的年龄是:28
你的用户名为大灰狼;你的年龄为28
请按任意键继续. . .
习题二答案
1 Console.Write("请输入你的用户名:");
2 string name = Console.ReadLine();
3
4 Console.Write("你的年龄是:");
5 string age = Console.ReadLine();
6
7 //将要显示的提示语句和变量的值用+号拼接起来。
8 Console.WriteLine("你的用户名为"+name+";你的年龄为"+age);
根据教学中发现学生们常见的错误一:
1 Console.Write("请输入你的用户名:");
2 Console.Write("你的年龄是:");
3 string name = Console.ReadLine();
4 string age = Console.ReadLine();
5
出现这种错误的学生请记住,就是你提示一句是,用户应该就填写姓名了,这时就应该马上去读取用户名,所以不应该全部提示出两句话后再去读取用户所填写的内容。
错误二:
不知道如何显示出变量合并显示的结果,如name变量后不知道加‘+’与后面的年龄提示进行连接。
习题二的第8行代码还可以使用占位符{n}的格式来书写:
//在要输出变量值的位置使用占位符{n}来占位,然后用','号来增加变量
//n从0开始计数,如果要输出3个变量,那么最后一个n的值应该为2
Console.WriteLine("你的用户名为{0};你的年龄为{1}" , name, age);
如果是要输出一个变量的name,写法为 Console.WriteLine("你的用户名为{0}" , name); 即每增加输出一个变量,就应该增加一个占位符,同时增加一个变量,变量间用‘,’隔开。
请大家实现习题三的效果:
习题三
请输入你的名字:大灰狼
你的年龄是:花样年华
你的性别是:雄性
一只正值花样年华的雄性大灰狼,正在等待他的爱人。
请按任意键继续. . .
结果显示请同学们采用占位符的方式。
习题三答案
1 Console.Write("请输入你的名字:");
2 string name = Console.ReadLine();
3 Console.Write("你的年龄是:");
4 string age = Console.ReadLine();
5 Console.Write("你的性别是:");
6 string sex= Console.ReadLine();
7 Console.WriteLine("一只正值{0}的{1}{2},正在等待他的爱人。",age,sex, name);
8
对于输入的读取除了ReadLine()方法外,还有Read()方法,但是这种方法的使用较少,而且用法与ReadLine不一致,建议同学们不要使用,而且暂时不需掌握,本节课的学习到此结束,下节课我们来实现加法的运算,这时就需要用到数据类型的转换,这将是下节课的学习重点。
Code
1 string a = "aa";
2 string b = a;
3 string c = string.Copy(a);
4 Console.WriteLine(a ==b);
5 Console.WriteLine(a == c);
6 Console.WriteLine((object)a == (object)b);
7 Console.WriteLine((object)a == (object)c);
答案是True True True False,这道题6、7行涉及到了数据类型底层的知识,不需要现在知道,这道题是让一个变量等于另一个变量有两种方法,进过第二行和第三行的执行,现在变量b和c的值都是“aa”,第4、5行判断他们的值是否相等,答案是相等的。
运算符
1 static void Main(string[] args)
2 {
3 int a = 0;
4 int a1;
5 a1 = a++;
6 //相当于 a1=a;a=a+1;
7 int b = 0;
8 int b1;
9 b1 = ++b;
10 //相当于 b=b+1;b1=b;
11 Console.WriteLine(a);
12 Console.WriteLine(a1);
13 Console.WriteLine(b);
14 Console.WriteLine(b1);
15 }
答案是1,0,1,1