语言C++之选择结构

这些只是本蒟蒻的一些见解,还望各位神犇积极评论提出宝贵意见,万分感谢!!!!!!!!!!

第三篇啊,给点关注和赞吧,以后会写更多的!!!!!!!!!!!!!!!!!!!!!!!!!

之前我们学的是C++最基础的语言设计,今天我们来学习一下一种新的语言结构——选择结构。先来看一道例题

1038: 【入门】编程求解数学中的分段函数

编程求解数学中的分段函数。 
.............x+1 (当x>0)
y=f(x)=...0 (当x=0)
.............x-1 (当x<0)
上面描述的意思是:当x>0时y=x+1; 当x=0时y=0; 当x<0时y=x-1

让我们先来理解一下题意:这道题根据判断x的取值来求出y的值

再来梳理一下具体步骤:

1.先写下基本结构,定义并输入x;

2.再判断并输出相应的值(也可定义y,判断完再输出);

3.恢复到0,终止程序。

大家可能会发现,这道题里需要判断,所以要用到选择结构,那么先让我来简单介绍一下选择结构的模板

1.if选择语句

if(需要达到的条件){//当达到括号中的条件时,执行花括号中的语句;单个句子不需要花括号,下面也一样
  需要执行的语句;//可有多句,但需要有花括号
}

2.if-else选择语句

if(需要达到的条件){//当达到括号中的条件时,执行花括号中的语句;单个句子不需要花括号,下面也一样
  需要执行的语句;//可有多句,但需要有花括号
}
else{//如果上面所描述的条件都达不到,就执行花括号里的语句
  需要执行的语句;
}

3.多分支选择语句

if(需要达到的条件){//当达到括号中的条件时,执行花括号中的语句;单个句子不需要花括号,下面也一样
  需要执行的语句;//可有多句,但需要有花括号
}
else if(需要达到的条件){//如果上面所描述的条件都达不到且达到当前句子的条件,就执行花括号里的语句,这条句子可以多句
  需要执行的语句;
}
else{//如果上面所描述的条件都达不到,就执行花括号里的语句
  需要执行的语句;
}

代码如下:

#include <iostream>
using namespace std;
int main(){
    int x,y;//基本结构,定义 
    cin>>x;//输入 
    if(x<0)
    y=x-1;//选择结构,if(条件) (达到条件后的运行结果) 
    else if(x==0)
        y=0;//不用花括号,达到条件后的运行结果语句多才要,加else是因为语句不是单独存在的 
    else if(x>0)//也可直接else
    y=x+1;//列举第三种情况 
    cout<<y<<endl;
    return 0;//基本结构,输出,返回值 
}

PS:这些是重要结构,需要实记,可这样记,if是如果的意思,如果后肯定加条件,然后执行;else是否则的意思,就是以上条件不符合

接下来再来学另外一种选择语句,再来一道例题

1769: 【入门】汉译英

输入某个整数,如果输入的整数在1-9范围内,则输出相对应的单词,否则输出'out'

让我们先来理解一下题意:这道题根据判断输入整数的取值来输出英文单词

再来梳理一下具体步骤:

1.写下基本结构(包括定义,返回值)

2.再判断并输出相应的单词;

同理,这道题也需要循环语句,但是大家可能会发现,和上面一样道理的代码比较复杂,那么就有另外一种较为方便的选择语句——switch语句,模板如下:

 switch(表达式)
  {
case  常量表达式1://以上表达式的值
case  常量表达式1.5://1.5与1达到其中一个,都执行语句序列1
    语句序列1;//如达到上一行的情况所需执行的内容
    break;//与多分支选择语句相同,如果if没有前加else,就没有所有句子连在一起,如果下面句子也满足情况,那么下面的句子也会执行,所以需要跳出这个语句(break为跳出,跳出花括号括着的语句),以下皆同
case  常量表达式2:
          语句序列2;
          break;
…… 
case  常量表达式n:
          语句序列n;
          break;
default://相等于else
         语句序列n+1;
  }

代码如下:

#include<iostream>
using namespace std;
long long a;
int main(){
	cin>>a;//基本结构 
	switch(a){//判断a的取值 
		case 1://如果a为1,执行以下操作 
			cout<<"one"<<endl;
			break;//跳出,以下皆同 
		case 2:
			cout<<"two"<<endl;
			break;	
		case 3:
			cout<<"three"<<endl;
			break;
		case 4:
			cout<<"four"<<endl;
			break;	
		case 5:
			cout<<"five"<<endl;
			break;
		case 6:
			cout<<"six"<<endl;
			break;
		case 7:
			cout<<"seven"<<endl;
			break;	
		case 8:
			cout<<"eight"<<endl;
			break;
		case 9:
			cout<<"nine"<<endl;
			break;	
		default://如果以上情况都不符合,执行一下操作 
			cout<<"out"<<endl;													
	}
	return 0;
}

PS:可以这样记,switch是开关的意思,case是情况的意思,说明有多种情况,如果以上情况都不符合,就默认(default,这有点像电脑用语,与开关对应)执行某项操作。

这是语句,但是还有一种更方便的符号,相当于if-else选择语句

c++有一个常用来代替if else 语句的操作符,这个操作符被称为三目运算符(?:),它是c++中唯一一个需要3个操作数的操作符。该操作符的通用格式如下:
    b?a:c
    如果 b为 true ,则整个表达式的值为 a;否则,整个表达式的值为c。下面两个语句演示了该操作符是如何工作的:
    x=5>3?10:12           // 5>3为true,所以 x=10;
   x=3==9?25:18           // 3==9为false,所以 x=18;

现给大家介绍几道题:

http://oj.jzxx.net/problem.php?cid=1547&pid=9

http://oj.jzxx.net/problem.php?cid=1570&pid=2

http://oj.jzxx.net/problem.php?cid=1547&pid=15

http://oj.jzxx.net/problem.php?id=1067

https://www.luogu.org/problemnew/show/P1089

PS:这一章主要讲选择结构,所以不讲基本结构,如果有不懂,可以看我的上两篇博客《语言C++之基础知识(拓展) 》《语言C++之简单C++语言介绍 

猜你喜欢

转载自blog.csdn.net/qq_41712886/article/details/81606863
今日推荐