目录
一、什么是闰年?
二、思维逻辑
三、代码详情
四、代码详细注释及相关知识拓展:
凡公历中有闰年(2月29日)的年份,阴阳历中有闰月的年份。
1582年以来公历的置闰规则:
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
用户输入一个年份;将年份字符串转化为整型;引用一个布尔类型,来判断年份是否为闰年,能被4整除但不能被100整除是闰年,或者能被400整除也是闰年;引用一个If语句做判断,如果布尔函数值为真,则该年份是闰年,否则不是闰年。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LeapYear
{
class Program
{
static void Main(string[] args)
{
int year;
string s;
Console.Write("请输入年份:");
s = Console.ReadLine();
year = int.Parse(s);
bool result = (year % 4 == 0&&year % 100 != 0) || year % 400 == 0;
if (result == true)
Console.WriteLine("{0}年是闰年",year);
else
Console.WriteLine("{0}年不是闰年", year);
Console.ReadLine();
}
}
}
- `using System;` 引入 `System` 命名空间,包含了 `Console` 类,用于输入和输出。
- `class Program` 声明了一个名为 `Program` 类,这是一个控制台程序的入口点。
- `static void Main()` 声明了一个名为 `Main` 的公共静态方法,这是程序的入口点。
-`int year;string s;`定义一个整型变量year,字符串s。
- `Console.Write("请输入年份:");` 输出提示,要求用户输入一个年份。
相关知识拓展:
console.writeline()和write的区别:
1. console.writeline()会在输出后自动换行,而write输出时不会自动换行。
2. console.writeline()只能输出一个值,并且该值会被输出到新的一行,而write可以输出多个值,多个值之间不会自动换行。
3. console.writeline()的输出对象只能是字符串类型,而write可以输出多种类型的对象,包括字符串、整数、浮点数等。
4. console.writeline()的返回值为void,而write的返回值为输出的字符数。
-`s = Console.ReadLine();`读取用户输入的年份,并赋值给字符串s;
-`year = int.Parse(s);`将字符串s转化为整型,并赋值给year。
相关知识拓展:
console.readline()和read的区别:
两者的区别在于读取输入的方式不同。
console.readline()从控制台读取一行用户输入,而read()从文件中读取指定字节数的数据。console.readline()通常用于与用户交互获取输入,而read()通常用于从文件中读取数据。
读取用户输入的数据都是字符串类型。无论用户输入的是数字、字母还是符号,都会被当作字符串来处理。如果需要对输入的数据进行数值计算,需要将其转化为对应的数据类型,如int或float。
C#如何将输入的数据转化为对应的数据类型?
C#有许多方法可以将输入的数据转换为对应的数据类型,以下是常用的方法:
1. 使用类型转换函数:例如Convert.ToInt32()、Convert.ToDouble()等。这些函数可以将输入的数据转换为对应的整数、双精度浮点数等数据类型。
2. 使用Parse方法:例如int.Parse()、double.Parse()等。这些方法可以将字符串类型的输入转换为对应的整数、双精度浮点数等数据类型。
3. 使用TryParse方法:例如int.TryParse()、double.TryParse()等。这些方法可以试图将输入转换为对应的数据类型,如果转换失败则返回false,而不会抛出异常。
4. 使用强制类型转换:例如(int)输入值可以将输入的值强制转换为整数类型。强制类型转换可能会导致数据丢失或溢出,需要小心使用。
需要注意的是,在输入数据时需要保证其符合对应数据类型的格式,否则无法成功转换。同时在转换时需注意数据类型的范围和精度,避免出现溢出或精度丢失的问题。
- `bool result = (year % 4 == 0&&year % 100 != 0) || year % 400 == 0;`引用布尔类型,判断年份是否为闰年,闰年的判断标准是:能被4整除但不能被100整除,或者能被400整除。
相关知识拓展:
C#中的布尔类型指的是bool类型,表示逻辑上的真或假。它只有两个取值:true和false。可以用于判断和控制程序流程。bool类型通常用于条件判断、循环控制和逻辑表达式中。例如,
```
bool isEquals = (5 == 5); // isEquals是true
bool isGreater = (10 > 15); // isGreater是false
bool isTrue = true; // isTrue是true
bool isFalse = false; // isFalse是false
```注意,C#不支持将非布尔类型隐式转换为布尔类型。也就是说,只有布尔表达式或bool类型的变量可以作为条件表达式使用。
```
int num = 10;
if(num) // 编译错误
{
// ...
}bool isOkay = true;
if(isOkay) // 正确
{
// ...
}
```
- `Console.WriteLine("{0}年是闰年。", year);` 输出判断结果,如果是闰年,输出 "{年份}年是闰年。"。
- `Console.WriteLine("{0}年不是闰年。", year);` 输出判断结果,如果不是闰年,输出 "{年份}年不是闰年。"。