C++语法3——if switch break continue的定义及用法

news2024/11/25 16:55:20

接上节
循环语句
这一节写的是判断语句



if else语句

基本语法:

第一种:
if(bool(布尔变量))
{
	如果bool值为真执行的语句;
}
else
{
	如果bool值为假执行的语句;
}

如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 false,则执行 else 块内的代码。

语法举例:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 100;
 
   // 检查布尔条件
   if( a < 20 )
   {
       // 如果条件为真,则输出下面的语句
       cout << "a 小于 20" << endl;
   }
   else
   {
       // 如果条件为假,则输出下面的语句
       cout << "a 大于 20" << endl;
   }
   cout << "a 的值是 " << a << endl;
 
   return 0;
}

上述代码取自菜鸟教程


第二种:
if(条件1)
{
	当条件1为真时执行语句;
}
else if(条件2)
{
	当条件2为真时执行语句;
}
else if(条件3)
{
	当条件3为真时执行语句;
}
......
else //除去上面所有条件的并集的情况
{
	当条件1、2、3...都为假时执行语句;
}

当使用 if…else if…else 语句时,以下几点需要注意:

1.一个 if 后可跟零个或一个 else,else 必须在所有 else if 之后。
2.一个 if 后可跟零个或多个 else if,else if 必须在 else 之前。
3.一旦某个 else if 匹配成功,其他的 else if 或 else 将不会被测试。

举个栗子
在这里插入图片描述

这里只放一张图,详情请通过上面链接跳转到洛谷查看

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const double pi=3.141593;

int main() 
{
	int T;
	cin >> T;
	if (T == 1)
		cout << "I love Luogu!";
	else if (T == 2)
		cout << 2 + 4 << " " << 10 - 2 - 4;
	else if (T == 3) 
	{
		int i,j,k;
		i=14/4;
		j=i*4;
		k=14-j;
		cout<<i<<endl<<j<<endl<<k;
	} 
	else if (T == 4) 
	{
		double l;
		l=500.0/3;
		cout<<l;
	} 
	else if (T == 5) 
		cout<<(220+260)/(12+20);
	else if (T == 6) 
		cout<<sqrt(6*6+9*9);
	else if (T == 7) 
		cout<<110<<endl<<90<<endl<<0;
	else if (T == 8) 
		cout<<pi*10<<endl<<pi*25<<endl<<4/3.0*pi*125;
	else if (T == 9)
		cout<<"22";
	else if (T == 10) 
		cout<<"9";
	else if (T == 11) 
	{
		double i=100.0/3;
		cout<<i;
	} 
	else if (T == 12)
		cout<<int('M'-'A')+1<<endl<<char('A'+17);
	else if (T == 13) 
		cout<<(int)(pow(4/3.0*pi*(4*4*4+10*10*10),1.0/3));
	else if (T == 14) 
		cout<<"50";
	return 0;
}


switch语句

基本语法:

switch(变量)
{
	case 值1:
		(语句;
		break;)
	case 值2:
		(语句;
		break;)
	case 值3:
		(语句;
		break;)
	default:  //除去以上所有值的情况
		(语句;)
}
小括号括着代表该语句可有可无,没有也可以正常运行
语法举例:
#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   char grade = 'D';
 
   switch(grade)
   {
   case 'A' :
      cout << "很棒!" << endl; 
      break;
   case 'B' :
   case 'C' :
      cout << "做得好" << endl;
      break;
   case 'D' :
      cout << "您通过了" << endl;
      break;
   case 'F' :
      cout << "最好再试一下" << endl;
      break;
   default :
      cout << "无效的成绩" << endl;
   }
   cout << "您的成绩是 " << grade << endl;
 
   return 0;
}

实战:用上面用过的题目
代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const double pi=3.141593;

int main() 
{
	int T;
	cin >> T;
	switch(T)
	{ 
		case 1:
			cout << "I love Luogu!";
			break;
		case 2:
			cout << 2 + 4 << " " << 10 - 2 - 4;
			break;
		case 3:
		{
			int i,j,k;
			i=14/4;
			j=i*4;
			k=14-j;
			cout<<i<<endl<<j<<endl<<k;
			break;
		}
		case 4: 
		{
			double l;
			l=500.0/3;
			cout<<l;
			break;
		}
		case 5: 
			cout<<(220+260)/(12+20);
			break;
		case 6: 
			cout<<sqrt(6*6+9*9);
			break;
		case 7:
			cout<<110<<endl<<90<<endl<<0;
			break;
		case 8: 
			cout<<pi*10<<endl<<pi*25<<endl<<4/3.0*pi*125;
			break;
		case 9:
			cout<<"22";
			break;
		case 10: 
			cout<<"9";
			break;
		case 11:
		{
			double i=100.0/3;
			cout<<i;
			break;
		}
		case 12:
			cout<<int('M'-'A')+1<<endl<<char('A'+17);
			break;
		case 13: 
			cout<<(int)(pow(4/3.0*pi*(4*4*4+10*10*10),1.0/3));
			break;
		default: 
			cout<<"50";
	}
	return 0;
}

❗❗❗切记:case后面若有语句一定得在尾部加上break。否则会输出错误,break属于一个断点操作。



break与continue语句

break:打破,顾名思义就是停止当前循环或语句。

C ++中 break 语句有以下两种用法:

1.当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
2.它可用于终止 switch 语句中的一个 case。

如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

语法示例:

#include <iostream>
#include <cstdio>
int main ()
{
   int a = 10;
   while( a < 20 )
   {
      printf("a 的值: %d\n", a);
      a++;
      if( a > 15)
         /* 使用 break 语句终止循环 */
          break;
   }
   return 0;
}

输出结果如下:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15

continue:继续,顾名思义就是继续做循环,它类似于break,不过break是强制退出循环,它是跳过当前循环的代码做下一次循环

语法示例:

#include <iostream>
#include <cstdio>
int main ()
{
   int a = 0;
   do
   {
      if( a == 5)
      {
         a = a + 1;
         continue;
      }
      printf("a 的值: %d\n", a);
      a++;
   }while( a < 10 );
   return 0;
}

输出结果如下:

a 的值: 0
a 的值: 1
a 的值: 2
a 的值: 3
a 的值: 4
a 的值: 6
a 的值: 7
a 的值: 8
a 的值: 9


以上就是这次的全部内容,希望对大家有所帮助有所启发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023北京/上海/广州/深圳物联网产品经理班招生简章

NPDP产品经理国际资格认证是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 我们针对互联网时代的个人、互联网企业、与传统企业推出一系列学习。 课程从…

第四十五讲:神州防火墙P2P流量控制配置

实验拓扑图如下所示 配置要求&#xff1a;出口带宽 100Mbps&#xff0c;外网为 eth0/1 接口&#xff0c; 内网连接两个网段172.16.1.0/24 和 192.168.1.0/24&#xff0c;需限制 P2P 应用其下行带宽为 10M&#xff0c;上传最大 5M。 配置步骤&#xff1a; 一、指定接口带宽 …

Struts2框架之result配置

Struts2框架之result配置result配置1、常用的结果类型1.1、dispather类型1.2、redirect类型1.3、redirectAction类型2、全局结果配置result配置 result配置一般与页面相关&#xff0c;请求经由对应Action处理后&#xff0c;返回一个字符串&#xff0c;根据返回的字符串找到对应…

为了让5G更省电,这家设备商秀出黑科技

近日&#xff0c;工信部发布了我国最新的《通信业经济运行情况》数据。根据数据显示&#xff0c;截止到11月末&#xff0c;我国5G基站总数已经达到228.7万个&#xff0c;比2021年底增加了86.2万个。这些数量庞大的基站&#xff0c;共同构建了一张规模庞大的5G网络。而这张网络&…

YOLOv5 CPU实时的实例分割教程-它来了!

一个不知名大学生&#xff0c;江湖人称菜狗original author: jacky LiEmail : 3435673055qq.comTime of completion&#xff1a;2023.1.6Last edited: 2023.1.6YOLOv5 CPU实时的实例分割教程-它来了&#xff01;简介前不久&#xff0c;ultralytics发布了一个yolov5 7.0版本&…

yolov8s网络模型结构图

yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8&#xff01;&#xff01;&#xff01;&#xff01; yolov8真的来了&#xff01;&#…

2023,本命年向阳而生

2023&#xff0c;本命年向阳而生 ——Maynor的2022复盘及2023目标 幸运且努力 先说结论&#xff1a;2022年是极不平凡的一年。 有很多重大事件发生&#xff0c;且与我们的生活息息相关。最令人高兴的是疫情的缓解&#xff0c;2023年也将有更多的机会。 我在这一年经历的事…

FFMPEG入门资料---001---介绍和参数说明

文档介绍 1.1 文档目的 整理出开源代码 ffmpeg 的资料&#xff0c; 方便公司同事后续使用。 1.2 文档范围 较为详细的介绍 ffmpeg 的功能、使用以及二次开发。 1.3 读者对象 希望了解 ffmpeg 知识&#xff0c; 从事 USM 及 IPTV 的同事。 1.4 参考文献 无 1.5 术语与缩…

AcWing 4655. 重新排序(差分+前缀和+贪心)

一、题目信息 二、思路分析 这道题的话&#xff0c;其实只看前一句话&#xff0c;我们应该用的是前缀和算法。但是这道题在此基础上做了改变&#xff0c;我们根据前缀和可以算出排序之前各个区间和的和。 根据题意&#xff0c;我们需要对数组重新排序&#xff0c;使得排序之后…

VMware Workstation安装ESXI8.0

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

反射看这一篇文章就够了

第一章 反射的概述 第1节 反射的概念 Java的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为Java的反射机制. 第2节 反射理解 1如果存在反射,那…

实现 SpringBoot 项目中的隐私数据脱敏

实现 SpringBoot 项目中的隐私数据脱敏什么是数据脱敏如何实现数据脱敏注解使用demo什么是数据脱敏 为了避免“用户信息泄露”的风险项&#xff08;就是后台系统里用户的一些隐私数据直接明文显示了&#xff09;&#xff0c;其实指的就是要做数据脱敏。数据脱敏&#xff1a;把…

谷歌浏览器自带的翻译功能无法使用的解决办法

谷歌浏览器自带的翻译功能无法使用的解决办法 到 C:\Windows\System32\drivers\etc 目录找到hosts文件用记事本或者notepad打开在文件末尾添加&#xff1a;142.250.4.90 translate.googleapis.com要有管理员的身份才可以对hosts文件进行修改修改完毕以后&#xff0c;打开cmd命令…

MySQL 如何查找删除重复行

如何查找重复行 第一步是定义什么样的行才是重复行。多数情况下很简单&#xff1a;它们某一列具有相同的值。本文采用这一定义&#xff0c;或许你对“重复”的定义比这复杂&#xff0c;你需要对sql做些修改。本文要用到的数据样本&#xff1a; create table test(id int not …

解决Vue使用UEditor百度编辑器,上传图片服务配置问题

前言 查看文档前先查看http://fex.baidu.com/ueditor/#server-jsp 理解手册基本配置 此文档只针对TomcatWeb服务 vue版本为2.0版本和 vue-cli2.0 环境配置 需求配置实际项目配置JDK 1.6java version “19.0.1” 2022-10-18Apache Tomcat 6.0Server version: Apache Tomcat…

狂神说笔记——Nginx快速入门28

Nginx快速入门 在低并发的情况下&#xff0c;一个jar包启动应用就够了&#xff0c;然后内部tomcat返回内容给用户。 随着用户越来越多了&#xff0c;并发量慢慢增大了&#xff0c;此时一台服务器满足不了需求了。 于是进行横向扩展&#xff0c;又增加了服务器。这个时候几个项目…

VTK-路径规划

前言&#xff1a;本博文主要研究VTK中路径规划相关的内容&#xff0c;后期会持续更新路径规划相关的拓展应用&#xff0c;希望能给各位小伙伴一些帮助&#xff0c;也希望小伙伴们多多关注支持。 vtkGraphGeodesicPath 位置&#xff1a;..\Filter\Modeling 描述&#xff1a;路…

DDS 发送大数据

Sending Large DataThis section describes the capabilities offered by Connext DDS—specifically, RTI FlatData™ language binding and Zero Copy transfer over shared memory—that allow sending and receiving large data samples with minimum latency. In this sec…

Oracle 19c - 手动升级到 Non-CDB Oracle Database 19c 的完整核对清单 (Doc ID 2577572.1)

Oracle 19c - 手动升级到 Non-CDB Oracle Database 19c 的完整核对清单 (Doc ID 2577572.1)正在上传…重新上传取消To Bottom 文档内容 用途适用范围详细信息关于新的 Autoupgrade utility步骤 1: 升级到数据库 19c 的升级路径能够直接升级到 Oracle 19c 的数据库最小版本以下…

mongodb-18.聚合查询练习1

文章目录bulk writeaddFields增加field嵌套增加field覆盖显示用变量替换向数组中增加元素分组 bucket并行执行多个bucket$bucketAuto$count$document$facet1.使用Aggregation对象实现2.使用Aggregates实现$graphLookup 文档递归查询跨多文档递归$graphLookupbulk write db.piz…