一 结构化程序设计的三种基本流程
1 顺序 分支 循环

2 简单语句
最简单的语句:方法调用语句及赋值语句
 后面有个分号
 如:
System.Console.Write("Hello World");
b=a>0?a:-a;
s=TextBox1.Text;
d=int.Parse(s);
注意:没有表达式语句一说
 2+3;不能称为一个语句;
3 分支语句
if(条件表达式)
 语句块
 else
 语句块
3 示例
LeapYear.cs
if((year%4==0&&year%100!=0)||(year%400==0))
   Console.WriteLine(year+"是润年");
 else
   Console.WriteLine(year+"不是闰年");
小技巧
 注意书写格式,特别是缩进;
 将后面的花括号去掉,再重新输一下,就会自动排版;
 也可以按Ctrl+E+D(格式文档)
 或 Ctrl+E+F(格式化选中部分)
屏幕保护源代码:
 Winform窗体无边框属性 Font->FormBorderStyle改位None,WindowState 改为Maximized;
 添加timer label 控件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 屏幕保护
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        int deltX = 10;
        int deltY = 8;
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            Application.Exit();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.label1.Left += deltX;
            this.label1.Top += deltY;
            if (this.label1.Top < 0 ||
                this.label1.Top + this.label1.Height > this.Height)
                deltY = -deltY;
            if (this.label1.Left < 0 ||
                this.label1.Left + this.label1.Width > this.Width)
                deltX = -deltX;
        }
    }
}
二 多分支语句-----switch语句
switch (exp)
{
    case const1:
    statement1;
    break;
    case const2:
    statement2;
    brek;
    .....
    case constN:
    statementN;
    break;
    default:
    statement_dafault;
    break;
}
Switch 语句与C++不同之处
 ① 变量处理整型、枚举型、还可以用字符串;
 ② 不能随便贯穿,必须有break;(除非几个case连起来,中间没有别的语句);
出题判分:button、label、textBox、listBox控件组成
 
源代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 自动出题并判分
{
    public partial class Form1 : Form
    {
        int a, b;
        string op;
        int result;
        Random rnd = new Random();
        /// <summary>
        /// 出题
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            a = rnd.Next(9) + 1;
            b = rnd.Next(9) + 1;
            int c = rnd.Next(4);
            switch(c)
            {
                case 0:op = "+";result = a + b;break;
                case 1:op = "-";result = a - b;break;
                case 2:op = "*";result = a * b;break;
                case 3:op = "/";result = a / b;break;
            }
            label1.Text = a.ToString();
            label3.Text = b.ToString();
            label2.Text = op;
            textBox1.Text = "";
        }
        /// <summary>
        /// 判断
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            string str = textBox1.Text;
            double d = double.Parse(str);
            string disp = " " + a + op + b + "=" + str + " ";
            if (d == result)
                disp += "☆";
            else
                disp += "╳";
            listBox1.Items.Add(disp);
        }
        public Form1()
        {
            InitializeComponent();
        }
    }
}
三 循环语句
1 循环语句功能
句的在循环条件满足的情况下,反复执行特定代码;
2 循环五要素
① 初始化部分(init_statement);
 ② 循环条件部分(test_exp);
 ③ 循环体部分(body_statement);
 ④ 迭代部分(alter_statement)称为“循环改变”;
 ⑤ “结束后处理”;
s=0;for(int i=1;i<=100;i++)s+=i;
Console.Write(s);
3 循环语句分类
for循环、while循环、do-while循环
 
 ① for循环语句
 语法格式
for(init_statement;test_exp;alter_statement)
{
   body_statement;
}
应用举例
int result=0;
for(int i=0;i<=100;i++)
{
   result+=1;
}
System.Console.Write("result="+result);
② while 循环语句
 语法格式
[init_statement]
while(test_exp)
{
    body_statement;
    [alter_statement;]
}
应用举例
int result=0;
int i=1;
while(i<=100)
{
    result+=i;
    i++;
}
System.Console.Write("result"+result);
③ do/while循环语句
 至少执行一次
 语法格式:
[init_statement]
do
{
    body_statement;
    [alter_statement;]
} while (test_exp);
应用举例
int result=0;int i=1;
do{
    result+=i;
    i++;
}while(i<=100)
System.Console.Write("result"+result);
4 跳转语句
常用的跳转语句:
 ① break语句
 结束循环(相当于VB中的Exit Do,Exit For)
 ② continue语句
 进入下一次循环;
 ③ goto语句
 跳转到某个语句标号;
 ④ try{}catch{}语句
 异常的捕获;
5 GOTo语句及其弊端
有关Goto语句的争论
 C# 中的goto语句:
 可以从内层跳到外层;
 标号的写法:标识符加个冒号(😃
示例:
 角谷猜想
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 角谷猜想
{
    internal class Program
    {
       public  static void Main(string[] args)
        {
            for(int n=1;n<=100;n++)
            {
                int a = n;
                while(a!=1)
                {
                    Console.Write(" " + a);
                    if (a % 2 == 1) a = a * 3 + 1;
                    else
                        a /= 2;
                }
                Console.WriteLine(" " + a);
            }
            Console.ReadKey();
        }
    }
}
画许多圆(使用循环与绘图)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 画许多圆
{
    public partial class Form1 : Form
    {
        Random random = new Random();
        public Form1()
        {
            InitializeComponent();
        }
        Color getRandomColor()
        {
            return Color.FromArgb(
                random.Next(256),
                random.Next(256),
                random.Next(256));
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            int x0 = this.Width / 2;
            int y0 = this.Height / 2;
            for(int r=0;r<this.Height/2;r++)
            {
                g.DrawEllipse(
                    new Pen(getRandomColor(), 1),
                    x0 - r, y0 - r, r * 2, r * 2);
            }
            g.Dispose();
        }
    }
}


















