热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

C++学习小结之语句

本文给大家汇总介绍了下C++中比较基础的知识--语句,常用的语句都有详细介绍和附上了相关示例,十分实用,有需要的小伙伴可以参考下

一、顺序语句

二、条件,分支语句

1、if语句

关键是能够熟练运用 if的嵌套。要考虑好所有的情况。

如果说 条件是两种情况相互对应的,那么就可以只用 if 与else 。但必须要想好 每个else 跟哪个if是一对。

如果情况是相互独立的三种情况以上,那么可以选择运用if ... else if ...else。

1.if语句

if(条件)
{
满足条件的时候执行;
}

2. if(条件)

{
满足条件执行;
}
else
{
不满足条件时执行;
}

3 if(条件1)
{
满足条件1的时候执行;
}
else if(条件2)
{
不满足条件1的情况下满足条件2;
}

4.

if(条件1)
{
if(条件2)
{
既满足条件1又满足条件2的时候执行;
}
}

2、switch 语句

如果说可选的条件比较多时,选择switch语句,要比if语句效率要高。特别注意的是 case 后跟的break。

eg:

 //eg.6 swtich语句   作用域
        static void Maine(string[] args)
        {
            //Console.WriteLine("你本次选择出场的英雄是:");
            Random r = new Random();
            int n = r.Next(10);

            string a;

            switch (n)
            {
                case 1:
                    a = "赵信";    break;
                case 2:
                    a = "寒冰射手";break;
                case 3:
                    a = "无极剑圣";break;
                case 4:
                    a = "机器人";  break;
                default:
                    a = "齐天大圣";break;
            }
            Console.WriteLine("本次选择的英雄是:"+a);
        }

三、循环语句

for循环

四要素:

初始条件,循环条件,状态改变,循环体。 执行过程:

初始条件--循环条件--循环体--状态改变--循环条件....

注意:for的小括号里面分号隔开,for的小括号后不要加分号。

利用 加断点的方式,可以更好的明白for的工作原理。

1.for循环空操作完成的实例, 输出100以内的数字

 static void Main(string[] args)
     {
       int i = 1;
       for (; ; )
       {
         if (i > 100)
         {
           break;
         }
         Console.Write(i + "\t");
         i++;
       }
       Console.ReadKey();
     }

当然你也可以用 while,if() break;的嵌套完成上述操作。

.正序和逆序的推断问题。 (折纸问题)

  //eg.5 折纸问题

     static void Maine(string[] args)
     {
       //Console.WriteLine("请输入次数");
       //int n = Convert.ToInt32(Console.ReadLine());
 
 
       //int i = 0;
       //for (double sum = 0.0001; sum <= 8848.0; sum = sum * 2)
       //{
       //  i++;
 
       //}
       //Console.WriteLine(i);
 
       double sum = 0.0001;
       int z = 0;
 
       for (int i = 0; ; i++)
       {
         z++;
         sum = sum * 2;
 
         if (sum >= 8848.0)
         {
           Console.WriteLine(z);
           break;
         }
       }
     }

.应用:a.穷举法: 用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来。

 //eg.6 百马百石 大马驮2石,中马驮1石 小马驮0.5石 
 

    static void Main6a(string[] args)
     {
       for (int i = 0; i <= 50; i++)
       {
         for (int j = 0; j <= 100; j++)
         {
           for (int k = 0; k <= 200; k++)
           {
             if ( (i * 2 + j * 1 + k * 0.5 == 100) && (i + j + k == 100) )
             {
               Thread.Sleep(50);
               Console.WriteLine("大马需要" + i + "头,中马需要" + j + "头,小马需要" + k + "头。");
             }
           }
         }
       }
     }

         //eg.7 

     static void Maing(string[] args)
     {
       for (int i = 1; i <10; i++)
       {
         for (int j = 1; j <5; j++)
         {
           for (int k = 1; k <25; k++)
           {
             if (i * 5 + j * 10 + k * 25 == 50)
             {
               Console.WriteLine("50元用来买" + i.ToString() + "个牙刷," + j.ToString() + "个牙膏," + k.ToString() + "块肥皂,正好能用完。");
             }
           }
         }
       }
 
     }

         //eg.8 有1块,2块,5块的钱若干,凑出20块钱,有几种凑法

     static void Mainh(string[] args)
     {
       int m = 0;
       for (int i = 0; i <= 20; i++)
       {
         for (int j = 0; j <= 10; j++)
         {
           for (int k = 0; k <4; k++)
           {
             if (i * 1 + 2 * j + 5 * k == 20)
             {
               m++;
               Console.WriteLine("一共有" + m + "中方法。");
               Console.WriteLine("需要1元的" + i + "张,2元的" + j + "张,5元的" + k + "张。");
             }
           }
         }
       }
     }

         //eg.9  1 () 2 () 3 ()4 = 4;问括号里我要填 (- 或 +)

     static void Maini(string[] args)
     {
       for (int i = 1; i <= 1; i += 2)
       {
         for (int j = -1; j <= 1; j += 2)
         {
           for (int k = -1; k <= 1; k += 2)
           {
             for (int l = -1; l <= 1; l += 2)
             {
               if (1 * i + 2 * j + 3 * k + l * 4 == 4)
               {
                 Console.WriteLine("i=" + i + ",j=" + j + ",k=" + k + ",l=" + l + "。");
               }
             }
 
 
           }
         }
       }
     }

         //eg.10  123()45()67()8()9=100;要求在()里面填写+或-使等式成立。

     static void Maini2(string[] args)
     {
       for (int a = -1; a <= 2; a += 2)
       {
         for (int b = -1; b <= 2; b += 2)
         {
           for (int c = -1; c <= 2; c += 2)
           {
             for (int d = -1; d <= 2; d += 2)
             {
               if (123 + a * 45 + b * 67 + c * 8 + d * 9 == 100)
                 Console.WriteLine("a=" + a + ",b=" + b + ",c=" + c + ",d=" + d);
             }
           }
         }
       }
       Console.ReadKey();
     }

         //eg.11 某侦查队接到一项紧急任务,要求在A.B.C,D,E,F六名队员中尽可能多的挑选若干人。A和B两人必须去一人。A和D不能同时去。A,E,F三人必须两人去。B和C都
         //去或都不去。C和D两人中去一人。若D不去,E也不去。问应叫哪几个人去?(灵活运用1与0)

     static void Mainj(string[] args)
     {
       for (int a = 0; a <= 1; a++)
       {
         for (int b = 0; b <= 1; b++)
         {
           for (int c = 0; c <= 1; c++)
           {
             for (int d = 0; d <= 1; d++)
             {
               for (int e = 0; e <= 1; e++)
               {
                 for (int f = 0; f <= 1; f++)
                 {
                   if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && (d - e >= 0))
                   {
                     Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
                   }
 
                 }
               }
             }
           }
         }
       }
     }
     //老师版
     static void Mainj1(string[] args)
     {
       int a, b, c, d, e, f;
       for (a = 0; a <2; a++)
       {
         for (b = 0; b <2; b++)
         {
           for (c = 0; c <2; c++)
           {
             for (d = 0; d <2; d++)
             {
               for (e = 0; e <2; e++)
               {
                 for (f = 0; f <2; f++)
                 {
                   if ((a + b >= 1) && (a + d <= 1) && (a + e + f == 2) && (b + c != 1) && (c + d == 1) && ((d + e == 0) || d == 1))
                   {
                     Console.WriteLine("A=" + a + "B=" + b + "C=" + c + "D=" + d + "E=" + e + "F=" + f);
                   }
                 }
               }
             }
           }
         }
       }
       Console.ReadKey();
     }

b.迭代法:有一定规律。 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备。

eg1 兔生兔问题

有一对幼兔,幼兔一个月后成长为小兔,小兔一个月后成长为成兔并生下一对幼兔,问几年后有多少对兔子,其中幼兔,小兔,成兔分别是多少?

//eg.2 兔生兔问题

    //方法一
    static void Maink3(string[] args)
    {
      int syt = 1, byt = 0;
      int sxt = 0, bxt = 0;
      int sct = 0, bct = 0;

      Console.WriteLine("请输入月数:");
      int mOnth= Convert.ToInt32(Console.ReadLine());
      int sum;

      for (int i = 1; i <= month; i++)
      {
        //赋值顺序不能变,必须按照兔子生长规律来,先有的bct才会有byt
        bct = sxt + sct;
        bxt = syt;
        byt = sxt + sct;

        //bct = sxt + sct; 这样写,必须注意他的顺序
        //bxt = syt;
        //byt = bct;



        //byt = bct;//错误的
        //bxt = syt;
        //bct = sxt + sct; 

        syt = byt;
        sxt = bxt;
        sct = bct;

        //sum = byt + bxt + bct;
      }

      sum = byt + bxt + bct;

      Console.WriteLine("过了{0}个月后,幼兔个数为{1}对,小兔个数为{2}对,成兔个数为{3}对,总共有{4}对。", month.ToString(), byt, bxt, bct,sum);
     
    }
    //方法二
    static void Maink4(string[] args)
    {
      int n = Convert.ToInt32(Console.ReadLine());
      int tu = 0;//要求那个月的总数
      int tu1=1, tu2=1;//倒数第一个为 tu1,倒数第二个为 tu2

      for (int i = 3; i 

eg 2  100以内的所有数的和。

eg3. 求阶乘。
eg4.求年龄。
eg5.折纸。
eg6.棋盘放粮食。
eg7.猴子吃桃子。

 static void Maink(string[] args)
    {
      int sum = 1;
      for (int i = 0; i <6; i++)
      {
        int t = (sum + 1) * 2;
        sum = t;
      }
      Console.WriteLine("桃子一共有:" + sum + "个。");
    }

eg8.落球问题。一个球从10米高度落下,每次弹起2/3的高度,问第五次弹起后的高度?

四、while 循环。一般用在一些死循环当中。

五、try catch。保护程序,避免程序出错时无法运行。

格式:

 try//快捷方式:双击 tab键                                    
      {

      }
      catch (Exception)
      {

        throw;
      }
      finally
      {
 
      }

以上所述就是本文的全部内容了,希望大家能够喜欢。


推荐阅读
  • 【行业专题报告】 人力资源专题资料
    每项专题报告都是从2019开始更新到至今,后续将持续更新如需查看完整报告和报告下载或了解更多,公众号:参一江湖今天为大家分享专题 ... [详细]
  • 2022年单片机课程(机器人工程)教学反思
    本文对2022年单片机类课程的教学进行了全面反思,分析了教学过程中遇到的问题,并探讨了未来改进的方向。 ... [详细]
  • 随着机器人技术的不断进步,波士顿动力公司近期的创新成果再次吸引了公众的目光。特别是其Atlas机器人完成高难度后空翻动作,标志着机器人运动能力的重大突破。 ... [详细]
  • 小度科技完成B轮融资,估值突破330亿
    8月24日,百度宣布其智能生活事业群组业务——小度科技成功完成B轮融资,估值达到330亿元人民币。此次融资的具体投资方尚未公布。 ... [详细]
  • 古月居课程四足机器人控制与仿真入门笔记,视频链接:link四足机器人足端轨迹规划--摆线摆线定义模型表示matlab程序摆线定义摆线,又称 ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 首尔国立大学推出教育性乌龟机器人Shelly:引导儿童正确对待智能设备
    在最近的ACM/IEEE人机交互会议上,来自首尔国立大学的科学家们介绍了一款创新的乌龟机器人——Shelly。这款机器人设计独特,能够对环境中的触碰和打击作出响应,通过改变颜色和收回四肢来模拟恐惧反应,旨在教育孩子们理解并尊重机器人的感受。 ... [详细]
  • 概率图模型中的条件概率分布(CPD)详解
    条件概率分布(Conditional Probability Distribution, CPD)是概率图模型中的核心概念之一,用于描述随机变量在给定条件下遵循的概率分布。本文将深入探讨CPD的不同类型及其在实际问题中的应用。 ... [详细]
  • C语言入门精选教程与书籍推荐
    本文精选了几本适合不同水平学习者的C语言书籍,从基础入门到进阶提高,帮助读者全面掌握C语言的核心知识和技术。 ... [详细]
  • 多智能体深度强化学习中的分布式奖励估计
    本文探讨了在多智能体系统中应用分布式奖励估计技术,以解决由于环境和代理互动引起的奖励不确定性问题。通过设计多动作分支奖励估计和策略加权奖励聚合方法,本研究旨在提高多智能体强化学习(MARL)的有效性和稳定性。 ... [详细]
  • 本文探讨了亚马逊Go如何通过技术创新推动零售业的发展,以及面临的市场和隐私挑战。同时,介绍了亚马逊最新的‘刷手支付’技术及其潜在影响。 ... [详细]
  • 本文由蕤内撰写,明亮公司出品,探讨了日本零售业在数字化转型中的现状与挑战。文章基于与两位在日本的投资人的深入对话,分析了日本零售业为何仍然依赖传统的POS机系统,以及中日两国在品牌建设和数字化营销上的差异。 ... [详细]
  • 题目编号:1473 时间限制:1秒 内存限制:128MB 提交次数:99 解决次数:60 ... [详细]
  • 智能全栈云风暴:AI引领的企业转型之路
    当提及AI,人们脑海中常浮现的是天才少年独自编写算法,瞬间点亮机器人的双眼。然而,真正的AI革命正由大型企业和机构推动,它们利用全栈全场景AI技术,实现数字化与智能化的深度转型。 ... [详细]
  • 随着 ChatGPT 在全球范围内的火热,众多开发者希望利用这一先进技术。然而,由于 OpenAI 官方网站注册流程复杂及支付条件限制,使得国内开发者难以便捷地接入这项技术。为了解决这个问题,APISpace 提供了一种简便的方式,让国内开发者可以轻松体验并使用 ChatGPT。 ... [详细]
author-avatar
shmily志伟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有