鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构)

article/2025/11/8 22:27:56

转载自:

http://www.jizhuomi.com/software/34.html

 上一讲鸡啄米为大家讲了运算符和表达式的知识,这一讲鸡啄米主要讲算法基本控制结构中的选择结构,同时教大家写比较简单的程序。

       为了能写出简单的程序并看见它们的输出效果,鸡啄米先讲下数据的输入和输出。数据从一个对象到另一个对象的流动我们一般称之为“流”,比如程序中的数据在屏幕上显示出来,我们可以想成数据从程序流向屏幕,就是输出流。从键盘输入数据就是输入流了。从流中获取数据叫做提取操作,向流中添加数据叫做插入操作。cin是系统预定义的输入流,用来处理标准输入即键盘输入。cout是预定义的输出流,用来处理标准输出,即屏幕输出。

      “<<”是预定义的插入符,它用在cout上可以实现屏幕输出。使用形式如下:cout<<表达式<<表达式...。这里可以连着多个表达式,输出多个数据到屏幕。这里的表达式可以是很复杂的表达式,系统会计算出这些表达式的值只把结果传给插入符<<,然后显示到屏幕上。例如,cout<<"a+b="<<a+b;会把"a+b="这个字符串和a+b的计算结果输出到屏幕。如果a=1,b=2;则屏幕上显示a+b=3。

      “>>”是提取符,用到cin上用来把键盘上输入的数赋值给变量。使用形式为:cin>>表达式>>表达式...。这里的提取符也可以有多个,每个后边跟一个表达式,这里的表达式一般是用来存放输入值的变量。比如,int a,b; cin>>a>>b;后面这个语句要求从键盘上输入两个整型数,两个数之间用空格分隔,如果输入 3 4,则变量a的值为3,b的值为4。

       再介绍几个操纵符,操纵符用来把输出值以特殊的格式显示出来。比如setw(int)用来设置域宽,就是设置数值的显示位数,setprecision(int)用来设置浮点数的小数位数(包括小数点),endl插入换行符,并刷新流。还有Dec,Hex,Oct是要求以几进制显示。

       下面鸡啄米开始讲算法的基本控制结构。算法的基本控制结构包括顺序结构、选择结构和循环结构。顺序结构就是按照事物的逻辑一条语句一条语句的写下来,顺序执行,就像流水账,这种结构最常见,也最简单,这里就不讲了。这一讲鸡啄米主要讲选择结构,循环结构下一讲会讲到。

       大家想想,如果有这样一个问题,若x<0,则y=-1,若x=0,则y=0,若x>0,则y=1。这里涉及到好几种选择,顺序结构肯定不行了,就要用到选择结构。

鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构)

      一.用if语句实现选择结构

      if语句专门用来实现选择结构,使用形式为:

      if (表达式)
              语句1
      else
              语句2

      这个结构的执行顺序是,先计算表达式的值,如果为true,则执行语句1,否则就执行语句2。比如,

      if (x>y)
               cout<<x;
      else
               cout<<y;

      这段程序可以用来输出x和y中比较大的那个数。if语句中的else和语句2可以没有,变成:if (表达式) 语句。比如,if (x>y) cout<<x。

      这里鸡啄米给大家一个程序例子,大家可以在vs2010中点File->New->Project创建一个Win32 Console Application。比如创建的新工程名叫Test,然后找到Test.cpp,里面有_tmain函数,实际上就是鸡啄米前面说的main函数,是程序的入口函数。我们就在这个main函数里写一段代码,用来判断输入一个年份时这个年份是不是闰年。大家知道,可以被4整除不能被100整除,或者能被400整除的年份都是闰年。下面是程序:

      #include "stdafx.h"
      #include <iostream>
      using namespace std;
      int _tmain(int argc, _TCHAR* argv[])
      {
            int nYear;
            bool bIsLeapYear;
            cout<<"Enter the year:";
            cin>>nYear;
            bIsLeapYear = ((nYear%4==0 && nYear%100!=0) || (nYear%400==0));
            if (bIsLeapYear)
                 cout<<nYear<<"is a leap year."<<endl;
            else
                 cout<<nYear<<"is not a leap year."<<endl;
            return 0;
      }

      因为vs2010里已经没有以前iostream.h文件,所以这里包含了iostream文件,这是最新的C++标准,里面同样包含了输入输出函数,using namespace std是说要用到std名字空间,名字空间鸡啄米以后会讲。开始debug运行,屏幕上会显示:Enter the year:,然后我们输入2000,点回车屏幕上接着显示:2000 is a leap year.可能你看不到这一句窗口就消失了,没关系,可以点debug->start without debugging,这样窗口就不会消失了。

      二.多重选择结构

      有些问题可能需要我们进行多次判断,这样就可以有几种方法:

      1.嵌套的if语句

      使用的语法形式:

      if(表达式1)
          if(表达式2)  语句1
          else             语句2
      else
          if(表达式3)  语句3
          else             语句4

      语句1、2、3、4可以是复合语句。每一层的if都要与else配对,如果省略掉一个else则要使用{}把这一层的if语句括起来。鸡啄米建议大家写程序的时候最好每层都用大括号括起来这样会大大减少出错的概率,也比较整齐,即使是熟手也一样。鸡啄米再给大家举个例子:

      #include "stdafx.h"
      #include <iostream>
      using namespace std;
      int _tmain(int argc, _TCHAR* argv[])
      {
             int x,y;
             cout<<"Enter x and y:";
             cin>>x>>y;
             if (x!=y)
             {
                    if (x>y)
                         cout<<"x>y"<<endl;
                    else
                         cout<<"x<y"<<endl;
             }
             else
             {
                    cout<<"x=y"<<endl;
             }
             return 0;
      }

      运行这个程序,屏幕上会显示,Enter x and y:,然后输入3 5,按回车接着会显示x<y。

      2.if...else if语句

      若if语句的嵌套都在else分支下,就可以使用if...else if语句。使用的语法形式为:

      if (表达式1)            语句1
      else if (表达式2)   语句2
      else if (表达式3)   语句3
      ...
      else                        语句n

      这里的执行逻辑就是,如果表达式1为true,则执行语句1,如果表达式1为false,且表达式2为true则执行语句2,如果表达式1、表达式2为false,且表达式3为true则执行语句3...就这样一层一层判断着执行下去。

      3.switch语句

      我们进行判断选择的时候,有可能每次都是对同一个表达式的值进行判断,那么就没有必要在每一个嵌套的if语句里都计算一下它的值,而是使用switch来解决这个问题。语法形式为:

      switch (表达式)
      {
      case 常量表达式1:  语句1
      case 常量表达式2:  语句2
      ...
      case 常量表达式n:  语句n
      default:           语句n+1
      }   

      此类语句的执行顺序是,先计算表达式的值,然后在case语句中寻找与之相等的常量表达式,跳到此处开始执行,若没有与之相等的则跳到default开始执行。使用switch语句时要注意以下几点:这些常量表达式的值不能相同,顺序可以随便;每个case语句的最后都要加break语句,不然会一直把下面所有的语句执行完;switch括号里的表达式必须是整型、字符型和枚举型的一种;每个case下的语句不需要加{};如果多个case下执行一样的操作,则多个case可以共用一组语句,比如
      case 1:
      case 2:
      case 3:   a++;
                    break;
      鸡啄米再给大家举个switch的例子。如果整型变量a为0则输出“小鸡”,如果为1则输出“小啄”,如果为2则输出“小米”,其他情况下输出“鸡啄米”。程序如下:

      #include "stdafx.h"
      #include <iostream>
      using namespace std;
      int _tmain(int argc, _TCHAR* argv[])
      {
              int a;
              cout<<"Enter a:";
              cin>>a;
              switch (a)
              {
              case 0:
                       cout<<"小鸡"<<endl;
                       break;
              case 1:
                       cout<<"小啄"<<endl;
                       break;
              case 2:
                       cout<<"小米"<<endl;
                       break;
              default:
                       cout<<"鸡啄米"<<endl;
                       break;
              }
              return 0;
      }

      运行时屏幕显示Enter a:,我们输入2,则会接着显示“小米”。

      这一讲鸡啄米首先讲了输入输出流对象,然后讲了选择控制结构,举了几个程序例子,大家可以按照鸡啄米的程序上机调试运行下,也可以自己在此基础上改改程序然后看看结果是否如你所想,大家先找找编程的感觉,在编程入门的时候不要着急。


http://chatgpt.dhexx.cn/article/QT03X6OG.shtml

相关文章

鸡啄米之VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)

目录 一、目的 1、想学习滚动条控件Scroll Bar&#xff0c;如此获得里面的数值&#xff0c;方便用在其他地方&#xff0c;比只输入变量方便多了 一、参考&#xff1a; 1、VS2010/MFC编程入门之二十六&#xff08;常用控件&#xff1a;滚动条控件Scroll Bar&#xff09; ①…

鸡啄米:C++编程入门系列之前言

转载自&#xff1a; http://www.jizhuomi.com/software/17.html 从今天开始鸡啄米将给大家讲解一些C编程入门的知识&#xff0c;对于鸡啄米也是个温习巩固的过程。鸡啄米将会用深入浅出的方式&#xff0c;尽量用最简单的语言让读者学会C语言&#xff0c;并爱上这门语言。 本前…

鸡啄米:C++编程入门系列之四(数据类型)

转载自&#xff1a; http://www.jizhuomi.com/software/29.html 上一讲鸡啄米给大家讲了VS2010的使用介绍&#xff0c;大家以后就可以用它来进行软件开发了&#xff0c;在编程入门的时候可以写些简单的程序先玩玩&#xff0c;实际编写代码试验下鸡啄米讲过的内容。 C是从C中发…

鸡啄米vc++2010系列30(树形控件Tree Control 下)

前面一节讲了树形控件Tree Control的简介、通知消息以及相关数据结构&#xff0c;本节继续讲下半部分&#xff0c;包括树形控件的创建、CTreeCtrl类的主要成员函数和应用实例。 树形控件的创建 MFC为树形控件提供了CTreeCtrl类&#xff0c;它封装了树形控件的所有操作。 树形控…

鸡啄米:C++编程入门系列之五(运算符和表达式)

转载自&#xff1a; http://www.jizhuomi.com/software/32.html 上一讲鸡啄米给大家讲了一些数据类型&#xff0c;这一讲主要讲解编程入门知识-运算符和表达式。运算符&#xff0c;顾名思义&#xff0c;就是用于计算的符号&#xff0c;比如&#xff0c;-&#xff0c;*&#xf…

鸡啄米:C++编程入门系列之三(VS2010的使用介绍)

转载自&#xff1a;http://www.jizhuomi.com/software/27.html 大家好&#xff0c;鸡啄米上节课给大家讲了原码、反码和补码的知识点。这节课我主要跟大家讲解VS2010的使用方法&#xff0c;并不会面面俱到&#xff0c;我只大概讲下经常会用到的功能。至于其他功能用的不会很多…

linux 命令:ls 详解

用法&#xff1a;ls [OPTION]... [FILE]... 打印关于FILE的信息&#xff08;默认当前目录&#xff09; 以字母表顺序排序&#xff08;如果没有使用-cftuvSUX或者--sort等选项&#xff09;选项&#xff08;OPTION&#xff09;&#xff1a;-a, --all 不隐藏任何以.…

linux的ls命令没反应,Linux:ls命令如何使用

原标题&#xff1a;Linux:ls命令如何使用 1、ls命令可以在Linux中显示出文件和目录&#xff0c;如下图。当然&#xff0c;ls命令不可能只能实现这么简单的操作&#xff0c;下面就通过一些参数来查看ls的其他用法 2、ls -l&#xff0c;使用长清单模式来列出文件和目录&#xff0…

Linux命令ls -l详细信息说明

一、 概述 Linux系统中敲入命令ls -l可以查看目录或文件的详细信息&#xff0c;本文介绍详细信息的组成。 二、 说明 详细说明见下图&#xff1a; 注意&#xff1a; 链接文件的概念类似于windows里的快捷方式。多个链接文件同时指向一个“源文件”。链接文件分为硬链接或软…

Linux ls 命令学习和简单使用

Linux中隐藏文件的特点是文件名以.开头&#xff0c;跟文件属性无关。Linux中查看隐藏文件用ls -a命令查看 ls 命令 1、ls 不带参数&#xff0c;可以列出当前目录下的内容 2、ls -l 可以列出文件的详细信息 3、 ls -a 可以显示当前目录下的隐藏文件 4、ll 与 ll -al 5、ls…

Linux 文件与目录查看命令 ls

Linux 文件与目录查看命令 ls (base) yinjiyinji:~$ ls [-aAdfFhilnrRSt] 文件名或目录名称 (base) yinjiyinji:~$ ls [--color{never,auto,always}] 文件名或目录名称 (base) yinjiyinji:~$ ls [--full-time] 文件名或目录名称 选项与参数&#xff1a; -a : 全部的文件&#x…

linux 命令 ls 与 ls -lrt 的区别

ls -lrt 表示按修改时间倒序列出当前工作目录下的文件。ls -l 表示按名称顺序正序列出当前工作目录下的文件。 1、ls 表示列出当前目录下的文件。后面的 -lrt 是这个命令的一些选项补充。-lrt 实际上是代表了 "-l -r -t" 这三个选项集合。 2、-l -r -t 1&#xf…

linux ls lh每个列,Linux ls命令用法

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 1、ls命令简介 ls 命令是 Linux 下最常用的命令。ls 命令就是 list 的缩写,缺省下 ls 用来打印出当前目录的清单,如果 ls 指定其他目录,那么就显示指定目录里的文件及文件夹清单。 通过 ls 命…

Linux ls命令返回结果说明

ls 命令用法说明 命令名称&#xff1a;ls 英文原理&#xff1a;list 命令所在路径&#xff1a;/bin/ls 执行权限&#xff1a;所有用户 功能描述&#xff1a;显示目录文件 语法&#xff1a;ls [选项 -aldrtAFR] [文件或目录] 没有带参数则显示当前目录下的目录文件&#x…

Linux中ls -l命令展示信息详解

Linux中ls -l命令展示信息详解 在Linux系统中&#xff0c;ls -l命令是用以列表的形式来查看当前目录下的文件或目录&#xff0c;下面就让我们一起来看看展示的信息是什么意思吧 以CentsOS7为例子 [rootlocalhost mrluo]# ls -l total 0 drwxr-xr-x. 2 mrluo mrluo 22 Dec 19…

linux中ls命令详解

Linux中一个基本命令是ls。没有这个命令&#xff0c;我们会在浏览目录条目时会遇到困难。这个命令必须被每个学习Linux的人知道。 ls是什么 ls命令用于列出文件和目录。默认上&#xff0c;他会列出当前目录的内容。带上参数后&#xff0c;我们可以用ls做更多的事情。这里是一些…

Linux之ls命令

前言 Linux的命令&#xff0c;很多很多&#xff0c;至少三四千条&#xff0c;也是我们学习Linux的基本功&#xff0c;学这部分东西&#xff0c;没什么捷径&#xff0c;两个注意&#xff1a; 1.多用&#xff0c;熟能生巧&#xff0c;用着用着就记住了&#xff0c;至少常用命令要…

每日一个Linux命令之ls命令

每日一个Linux命令之ls命令 1. ls命令简介2. 常见选项 1. ls命令简介 ls命令&#xff08;list&#xff09;可用于列出指定路径下的文件&#xff08;Linux中一切皆文件&#xff0c;目录也是文件的一种&#xff09;&#xff0c;如果不指定路径&#xff0c;单独运行ls命令&#x…

linux命令之ls

1.基本使用 ls //显示不隐藏的文件与文件夹 ls -a //显示当前目录下的所有文件及文件夹包括隐藏的.和…等 ls -l //显示不隐藏的文件与文件夹的详细信息 ls -al //显示当前目录下的所有文件及文件夹包括隐藏的.和…等的详细信息 ls -R //将目录下所有的子目录的文件都列出来…

linux命令ls,显示有高亮的原因

linux命令ls,显示有高亮的原因 平时在linux系统使用ls命令&#xff0c;显示当前目录下的所有的文件&#xff0c;显示的文件结果有高亮。就如下图所示&#xff1a;可以看到&#xff0c;对于目录文件&#xff0c;有蓝色高亮。 但如果我们运行&#xff1a;sudo ls 可以看到这里却…