C#基础知识学习——运算符与流程控制语句(递归函数、水仙花数、鸡兔同笼、冒泡算法、双循环)(二)

运算符基础介绍

C#运算符包括:算数运算符、关系运算符、逻辑运算符

算数运算符

运算符描述
+
-
*
/
%取余
+=累加(a+=b等同于a=a+b)
-=累减 (a-=b等同于a=a-b)
*=累乘(a*=b等同于a=a*b)
/=累除(a/=b等同于a=a/b)

练习

取出 int a=123的每个数
int b,c,d;
b=a/100;
c=a/10%10;
d=a%10;
console.WriteLine(“b:{0}\nc:{1}\nd:{2}\n”,b,c,d);

关系运算符

运算符描述
>大于
<小于
==恒等于
>=大于等于
<=小于等于
!=不等于

练习

求三个数中的最大值
int a=1,b=2,c=3;
int max =0;
max=(a>b)?a:b
max=(max>c)?max:c;


max=(a>b)?((a>c)?a:c):(b>c)?b:c;

逻辑运算符

与 ( &&)

都为真才为真,一方为假都为假

或 ( ||)

一方为真则为真

非 ( !)

原值的对立面

三元运算符

(表达式)?真值:假值

按位与或

|(按位或) &(按位与)
int a=5(101),b=3(011);
int c=a|b
int d=a&b
即011与101按位进行或运算 c=7;d=1

位移(移位)运算

int a=5;
int b=a>>2
int c=a<<2
即将a转换成二进制,然后进行向右移除两位,最前面补两个零,即b=1(001)

流程控制语句介绍

顺序结构、分支结构、循环结构

IF分支结构

  1. if语句
  2. if-else语句
  3. 多重if语句
if()
{}
else  if()
{}
else  if()
{}
else
{}
  1. 嵌套if语句
 if ()
            {

            }
            else
            {
                if ()
                { }
                else if ()
                { }
                else if ()
                { }
                else
                { }
            }

递归

         /// <summary>
        /// 递归计算--压栈计算
        /// </summary>
        public class Jiechen
        {
            public static int JIE(int a)
            {
                if (a == 1)
                {
                    return 1;
                }
                else
                {
                    return a * JIE(a-1);
                }
            }
        }
         static void Main(string[] args)
        {
            //递归函数使用
            Console.WriteLine(Jiechen.JIE(5));
            Console.ReadKey();
        }

Switch分支结构

switch(条件)
{
  case结果1break;//退出
  case结果2break;//退出
  case结果3break;//退出
}
//case-when语句
            var input = Console.ReadLine();
            int q=int.Parse(input.Trim());
            switch (q)
            {
                case int a when a < 0:
                    Console.WriteLine("小于");
                    break;
                case int a when a > 0:
                    Console.WriteLine("da于");
                    break;
                case int a when a == 0:
                    Console.WriteLine("等于");
                    break;
                default:
                    Console.WriteLine("???????");
                    break;
            }

            //switch表达式语句
            var p=Console.ReadLine().Trim().ToLower();
            string result = p switch
            {
                "1" => "第1名",
                "2" => "第2名",
                "3" => "第3名",
                "4" => "第4名",
                " " => "啥也不是"

            };
           Console.WriteLine(result);

for循环结构

在循环次数确定的情况下

for(变量初始化(只执行一次);表达式是否成立;声明变化)
{
 代码块
}

举例

//统计1~100的奇数和
            int sum = 0;
            for (int i = 0; i <= 99; i+=2)
            {
                sum += i;
            }
//水仙花数:abc=a*a*a+b*b*b+c*c*c
            int a, b, c;
            for (int i = 100; i < 999; i++)
            {
                c = i / 100;
                b = i / 10 % 10;
                a = i % 10;
                if (a * a * a + b * b * b + c * c * c==i)
                {
                    Console.WriteLine(i);
                }
            }
//鸡兔同笼100只脚,鸡兔各多少只
            //穷举法
            for (int ji = 0; ji < 50; ji++)
            {
                if ((100 - ji * 2) % 4 == 0)
                {
                    int tu = (100 - ji * 2) / 4;
                    Console.WriteLine("鸡:{0}只,兔:{1}只",ji,tu);
                }
            }
 //死循环--无限循环
            for ( ;  ;  )
            {
                Console.WriteLine("hi");
            }

算法举例

             //冒泡算法
            int[] arr = { 1, 7, 9, 8 };
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr.Length-1; j++)
                {
                    if(arr[j]>arr[j+1])
                    {
                        int change = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = change;
                    }
                }
            }
            for (int i = 0; i < arr.Length; i++)
            {
                Console.WriteLine(arr[i]);
            }
          

            //双循环
            for (int row = 0; row < 4; row++)
            {
                for (int col = 0; col < 4; col++)
                {
                    Console.Write("*  ");
                }
                Console.WriteLine();
            }

            //九九乘法
            for (int row = 1; row <= 9; row++)
            {
                for (int col = 1; col <= row; col++)
                {
                    Console.Write(row+"*"+col+"="+row*col+"  ");
                }
                Console.WriteLine();
            }

break语句:结束循环
continue语句:终止本次循环,继续循环
return语句:退出所有循环

while与do- while循环结构

do- while至少执行一次

 int i = 0;
            int sum = 0;
            while(i<=100)
            {
                sum += i;
                i++;
            }
int i = 0;
            int sum = 0;
            do
            {
                sum += i;
                i++;
            } while (i <= 100);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值