using System;
namespace Day3
{
class Program
{
static void Main(string[] args)
{
// 短路逻辑 提高效率
int n1 = 1, n2 = 2;
// false && ?
bool re1 = n1 > n2 && n1++ > 1;
Console.WriteLine(n1); //1
// true || ?
bool re2 = n1 < n2 || n2++ < 1;
Console.WriteLine(n2); //2
}
}
}
选择语句
if else if else
for 循环
using System;
namespace Day3
{
class Program
{
static void Main(string[] args)
{
// 循环语句 跳转语句 方法
// for(初始值;循环条件;增减变量){循环体}
// 预定次数的循环
for (int i = 0; i < 4; i++)
{
Console.WriteLine("****");
}
}
}
}
while 循环
using System;
namespace Day3
{
class Program
{
static void Main()
{
/*while(条件){循环体}*/
int i = 0;
while (i < 5)
{
Console.WriteLine("***");
i++;
}
}
}
}
do...while... 循环
using System;
namespace Day3
{
class Program
{
static void Main()
{
/*do{循环体}while(条件);*/
// 先执行一次循环体,再判断条件
// 猜数字
Random random = new Random();
int number = random.Next(1, 101);
Console.WriteLine("请输入猜测数字(1-100):");
int guessNumber;
int guessCount = 0;
do
{
guessCount++;
guessNumber = int.Parse(Console.ReadLine());
if (guessNumber>number)
{
Console.WriteLine("猜大了");
}
else if (guessNumber<number)
{
Console.WriteLine("猜小了");
}
else
{
Console.WriteLine("猜对了,猜了{0}次",guessCount);
}
} while (guessNumber != number);
}
}
}
跳转语句
break continue
方法(函数/过程)
[一个]过程,尽可能小
定义方法:(C#方法名称首字母大写)
[访问修饰符] [可选修饰符] 返回类型 方法名称 (参数列表)
{
//方法体
return 结果;
}
调用方法:
方法名称(参数)
private static void Fun1()
{
Console.WriteLine("调用Func1");
return;
}
控制台打印日历方法
using System;
namespace Day3
{
class Program
{
/*
* 1.在控制台中实现日历的方法
* --调用12遍实现月历
* 2.在控制台中实现月历的方法
* --显示表头 Console.WriteLine("日\t一\t...");
* --计算当月1日星期数,输出空白(/t)
* Console.Write("\t")
* --计算当月天数,输出1\t2\t...
* --每逢周六换行
* 3.根据年月日计算星期数
* 4.计算指定月份的天数
* 5.判断闰年的方法
* 2月闰年29天 平年28天
* 年份能被四整除不能被100整除
* 年份能被400整除
*/
/// <summary>
/// 根据年月日,计算星期数的方法
/// </summary>
/// <param name="year">年份</param>
/// <param name="month">月份</param>
/// <param name="day">日</param>
/// <returns>星期数</returns>
private static int GetWeekByDay(int year,int month,int day)
{
DateTime dt = new DateTime(year, month, day);
return (int)dt.DayOfWeek;
}
/// <summary>
/// 根据年份计算是否闰年
/// </summary>
/// <param name="year">年份</param>
/// <returns>是否闰年</returns>
private static bool IsLeapYear(int year)
{
// if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
// return true;
// else
// return false;
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}
/// <summary>
/// 计算指定月份的天数
/// </summary>
/// <param name="year">年份</param>
/// <param name="month">月份</param>
/// <returns>天数</returns>
private static int GetDaysByMonth(int year,int month)
{
if (month < 1 || month > 12) return 0;
switch (month)
{
case 2:
// if (IsLeapYear(year))
// return 29;
// else
// return 28;
return IsLeapYear(year) ? 29 : 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
return 31;
}
}
/// <summary>
/// 控制台显示月历的方法
/// </summary>
/// <param name="year">年份</param>
/// <param name="month">月份</param>
private static void PrintMonthCalendar(int year, int month)
{
// 显示表头
Console.WriteLine("{0}年{1}月",year,month);
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
// 根据1日星期数,显示空白
int week = GetWeekByDay(year, month, 1);
for (int i = 0; i < week; i++)
{
Console.Write("\t");
}
// 根据当月总天数,显示日
int days = GetDaysByMonth(year, month);
for (int i = 1; i <= days; i++)
{
Console.Write(i+"\t");
// 周六换行
if(GetWeekByDay(year,month,i)==6)
Console.WriteLine();
}
}
/// <summary>
/// 控制台中打印年历的方法
/// </summary>
/// <param name="year">年份</param>
private static void PrintYearCalendar(int year)
{
for (int i = 1; i <= 12; i++)
{
PrintMonthCalendar(year,i);
Console.WriteLine();
}
}
static void Main()
{
Console.WriteLine("请输入年份");
int year = int.Parse(Console.ReadLine());
PrintYearCalendar(year);
Console.ReadLine();
}
}
}