C#_选择结构,Console的应用,数据类型转换
1:先看一个顺序结构编程,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication31
{
class Program
{
static void Main(string[] args)
{
double salse = 10001.25;
double bonus;
if (salse > 10000)
{
bonus = salse * 0.05;
}
else
{
bonus = 0;
}
Console.WriteLine(bonus);
Console.ReadKey();
}
}
}
运行结果:

2:针对Console的研究
Console表示控制台,它是一个针对控制台输入输出的类。具体含有的成员函数有:
Console.Write 表示向控制台直接写入字符串,不进行换行,可继续接着前面的字符写入。
Console.WriteLine 表示向控制台写入字符串后换行。
Console.Read 表示从控制台读取字符串,不换行。
Console.ReadLine 表示从控制台读取字符串后进行换行。
Console.ReadKey 获取用户按下的下一个字符或功能键,按下的键显示在控制台窗口中。
Console.Beep 通过控制台扬声器播放提示音。
Console.Clear 清除控制台缓冲区和相应的控制台窗口的显示信息。
具体应用为
(1)关于输出到控制台:
Console.WriteLine();
Console.Write();
Console.WriteLine(输出的值);
Console.Write(输出的值);
Console.WriteLine("输出的格式字符串",变量列表);
Console.Write("输出的格式字符串",变量列表);
Console.WriteLine("This is {0}, this is {1} and {2}",strName[0],strName[1],strName [2],strName3]);
这种方式中包含两个参数:“格式字符串”和变量列表。“This is {0}, this is {1} and {2}”这是格式字符串,{0}、{1}、{2}叫做占位符,代表后面依次排列的变量表,0对应变量列表的第一个变量,1对应变量列表的第2个变量,依次类推,完成输出。
(2)关于从控制台输入:
Console类提供的输入方法:
Console.ReadLine(); 这一句代码返回一个字符串型数据,可以把它直接赋值给字符串变量,如:
string strname=Console.ReadLine();
有时需要从控制台输入数字,就用到前面介绍的内容,数据转换,如:
int num=int.Parse(Console.ReadLine());
int num=Convert.ToInt32(Console.ReadLine());
上面两句代码效果相同,可以根据自己的习惯选择任意一种。
注意:
Console.ReadLine()和Console.Read()的输入结果完全不同,不能混用。
Console.Read(), 返回值为首字符的ASCII码
Console.ReadLine(), 返回值为字符串。
也就是说read方法只能读取第一个字符,而ReadLine能读多个字符也可以换行读取
Console.ReadKey()的作用:
read是从控制台读取,key表示按下键盘,那么组合在一起的意思就是获取用户按下功能键显示在窗口中,用在前面的代码起到窗口暂停的功能,在调试状态下,只有按
下任意键后窗口才会关闭。
下面举个简单的例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication32
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输入用户名和ID");
string name = Console.ReadLine();
int id = int.Parse(Console.ReadLine());
Console.WriteLine("User Name is {0} \nThe id is {1}", name, id);
Console.ReadKey();
}
}
}
运行结果:

2:上面从控制台输入的方法都是输入的字符串,需要转换为数字。下面说明一下C#的类型转换。
(1)隐式转换
只要能保证值不会发生任何变化,类型转换就可以自动进行。例如如下代码:
int val1=10;
int val2=20;
long total;
total=val1+val2;
long型变量包含的字节比int型变量包含的字节多,所以数据没有丢失的危险。在这种情况下,编译器会顺利进行转换。
对于不同类型值之间的转换,如果从低精度、小范围的数据类型转换为高精度、大范围的数据类型,可以使用隐式转换。
(2)显示转换
显示转换需要用户明确指定转换的类型。例如:
long val=20;
int val1=10;
val1=(int)val;
将大范围类型的数据转换为小范围的类型的数据时,有可能丢失数据的危险。如果需要使用显式转换,但又不知道是否会丢失数据,可以使用checked运算符来检查转换是否安全。例如:
long val=4000000000000;
int val1;
val1=checked((int)val);
使用checked运算符可以检查数据类型转换是否安全,如果不安全,就会让运行库抛出一个溢出异常。
(3)使用方法进行类型转换
如果将一个数字转换为字符串。.NET类库提供了一些方法。Object类有一个ToString()方法,该方法在所有的.NET预定义类型中都进行了重写,返回对象的字符串表示。例如:
int i=10;
string str=i.ToString();
如果需要将一个字符串转换为某种值类型,可以使用所有预定义值类型都支持的Parse方法。Parse方法可以将特定格式的字符串转换为数值,该方法的具体使用格式为:
string str="123";
int i=int.Parse(str);
decimal x=decimal.Parse("3.14");
其中,decimal是一种专用标识财务计算的数据类型,其大小为128位,并且不遵守四舍五入规则,是十进制。
另外,使用Convert类提供的方法也能进行各种值类型之间的转换。Convert类可以将一个基本数据类型转换为另一个基本数据类型。该类为每种数据类型转换都提供了以To开始的静态方法。例如:
Convert.ToInt32() 转换为整型(int)
Convert.ToChar() 转换为字符型(char)
Convert.ToString() 转换为字符串型(string)
Convert.ToDateTime() 转换为日期型(datetime)
Convert.ToDouble() 转换为双精度浮点型(double)
Conert.ToSingle() 转换为单精度浮点型(float)
具体用法请看:https://msdn.microsoft.com/zh-cn/library/system.convert.aspx。
使用Parse方法转换的实例如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication31
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入数字:");
double salse = double.Parse(Console.ReadLine());
double bonus;
if (salse > 15000)
{
bonus = salse * 0.1;
}
else if (salse > 5000)
{
bonus = salse * 0.05;
}
else
{
bonus = 0;
}
Console.WriteLine(bonus);
Console.ReadKey();
}
}
}
运行结果:

C#_选择结构,Console的应用,数据类型转换的更多相关文章
- Flutter实战视频-移动电商-09.首页_项目结构建立和获取数据
09.首页_项目结构建立和获取数据 在config下创建service_url.dart 用来配置我们后端接口的配置文件 一个变量存 接口地址,一个接口方法地址 所有后天请求数据的方法都放在这个文件夹 ...
- C++之程序流程_选择结构
C/C++支持最基本的三种程序运行结构:==顺序结构.选择结构.循环结构== * 顺序结构:程序按顺序执行,不发生跳转* 选择结构:依据条件是否满足,有选择的执行相应功能* 循环结构:依据条件是否满足 ...
- 全国计算机等级考试二级教程-C语言程序设计_第4章_选择结构
switch什么时候用break,什么时候不用break 调用break:一次执行一个分支,输入一个数据,对应一个级别 不调用break:连续执行多个分支 if...else 可以处理任何情况,大于小 ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)
选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...
- 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶
实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1) 系统随机产生一个[1-100]之间的随机数. (2) 输入任意一个数字.数字 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- if else 选择机构 _多重if选择机构_if选择结构嵌套(综合练习题——code)
import java.util.*; class If01{ public static void main(String[ ]args){ //练习1:假如张三参加Java考试,判断如果在95分以 ...
随机推荐
- 深入JavaScript对象(Object)与类(class),详细了解类、原型
JavaScript基于原型的对象机制 JavaScript原型上的哪些事 一.JavaScript基于原型的对象机制 JavaScript对象是基于原型的面向对象机制.在一定程度上js基于原型的对象 ...
- H5存储方式
数据存储 var arr = [0, 1, 1, 1]; //存储,IE6~7 cookie 其他浏览器HTML5本地存储 if (window.localStorage) { localStorag ...
- 网页接入dingding扫码登录
前言 有时候我们做了一些网页,希望只有某些人才能看的话,可以搞一个钉钉扫码登录,接入也比较简单,下面记录下接入的过程. 流程 我们先看看官方的文档:钉钉接入文档梳理一下官方的流程:1.先跳去一个扫码网 ...
- 阿里P8架构师总结Java并发面试题(精选)
一.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一 ...
- 在cmd下import cv2报错——OpenCV实现BRISK
平台:win10 x64 +JetBrains PyCharm 2018.2.4 x64 +Anaconda3(python3.7.0+opencv3.4.5) Issue说明:同学发了个python ...
- web开发:javascript操作
一.函数闭包 二.面向对象 三.js选择器 四.事件初始 五.js处理页面内容 六.js事件控制标题栏 七.js控制类名 一.函数闭包 ```js// 函数的嵌套定义, 定义在内部的函数就称之为 闭包 ...
- 查看tensorflow Pb模型所有层的名字
代码如下: import tensorflow as tf def get_all_layernames(): """get all layers name"& ...
- 牛客练习赛53 A 超越学姐爱字符串 (DP)
牛客练习赛53 超越学姐爱字符串 链接:https://ac.nowcoder.com/acm/contest/1114/A来源:牛客网 超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢" ...
- gerapy+scrapyd组合管理分布式爬虫
Scrapyd是一款用于管理scrapy爬虫的部署和运行的服务,提供了HTTP JSON形式的API来完成爬虫调度涉及的各项指令.Scrapyd是一款开源软件,代码托管于Github上. 点击此链接h ...
- Base64编码与解码的作用
1.便于网络传输. 2.不可见性. 3.适合在http,mime协议下快速传输数据. 4 区别于加密,Base64是可以解码的,编码是 公开的,Base 64编码,任何人都可以解码