c++ 第一天 变量、判断、循环
C++介绍
语言的产生
C++ 由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的,由于C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言 ,所以最初命名为带类的C 。C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。C++ 也是目前嵌入式 ( 无人驾驶 ) 的首选语言。
c++的优缺点
优点:
实现了面向对象程序设计。在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由C++来编写的
功能强大,嵌入式首选。
C++加上严格的codereview可以用来开除猪一样的队友,这是所有其他语言都不具备的功能
缺点:
学习门槛高、难学
知识点繁杂,有声音说,c++标准委员会仅仅是为炫技并不考虑实际的工业需求
修复以前的bug
- 增加新的技术
与Python的比较
程序有两种执行方式,解释执行和编译执行。 python是一种解释语言(弱类型 | 动态类型 ...),不需要经过编译,是一边解释一边执行,由于底层封装了很多库供程序员使用,所以开发起来方便快捷,且能够很好地跨平台,写一些小工具小程序特别合适。
c++ 则属于编译语言,是一种需要编译后(整个程序编译 )运行语言,编译后通过链接,整合其他依赖库,然后生成机器码(可执行文件),以后再运行,无需编译。在指定环境下编译运行,运行效率高 ,---> exe -> 很难查看源码 。 c++ 可以直接操作内存 指针 。
- python打印
print('aaaa')
- c++打印
#include <iostream>
// 两个斜杠代表单行注释 多行注释:/*注释内容*/
// include: 导入 相当于Python中的import
// int main(){} 主函数入口
int main() {
// std:: count << "输出的内容" << std::endl;
std::cout << "aaa" << std::endl;
// return: 函数返回值,main
函数是C++程序的入口函数,C++标准要求main
函数的返回值类型为int
。 0 表示正常退出。
return ;
}
注意: 所有的逻辑代码必须写在函数内部里面, 所有代码后面一般都要有分号;
C++常见的数据类型
- int:整数类型
- float:单精度浮点数
- double:双精度浮点数
- char:字符
- string:字符串
- bool:布尔
与其他静态类型语言一样,C++也具备大多数语言的数据类型。除上面给出的数据类型之外,其实还有 short
| long
| long long
等 。
变量
c++的变量命名规则和Python一样:
可以包含字母 、 数字 和下划线
必须以字母或者下划线开始
- 不能跟关键字同名
声明和初始化
c++ 是强类型语言,任何变量在使用前必须先声明,并且在声明的时候必须要指定该变量的数据类型,即该变量未来能够存储的数据类型。
int main(){ //先声明
int age ;
double price; //后初始化
age = ;
price = 20.3; //声明及初始化
int age = ; return ;
}
常量
常量其实和变量没有多大区别, 有名字, 占据存储空间,可以是任何的基本类型,但只有一点不同,常量的值不允许变更。C++中的常量的声明需要使用 const
关键字,而python中的常量默认约定是全大写表示。
int main(){ const double pi {3.1415926};
const int months_in_year{}; pi = 2.5 ; //将会出现编译错误 常量的值不允许改变 return ;
}
输入和输出
任何编程语言都要输入和输出,python的输入输出是input
和 print
, C语言的输入输出是 scanf
和 printf
, 而C++的相对要复杂些,它使用 std::cin
和 std::cout
来操作输入输出 。 C++的输入输出,需要导入 iostream 库 。
#include <iostream> int main (){
std::cout << "请输入您的年龄:"<<std::endl; int age ;
// 把输入的值赋值给age
std::cin >> age;
// 输入age
std::cout << "您的年龄是:" << age <<std::endl; return ;
}
判断
if语句
#include <iostream> int main (){ std::cout << "请输入1-6数字:" << std::endl; int num;
std::cin >> num; if( num> ){
std::cout << "输入错误" << std::endl;
}else if(num>){
std::cout << "大" << std::endl;
}else{
std::cout << "小" << std::endl;
} return ;
}
switch语句
许多语言中都包含switch,比如:java 、javascript 、php 等,而python是个例外,python没有switch。实际上switch
和 if
语句块很相似, 它是完全的等价条件判断,但是一旦满足某个case
的条件,那么其他case
就不会再进行判断,如果全部不满足case条件,就会执行default里面的代码。
#include <iostream> int main (){
std::cout << "请输入此次考试的成绩评级" << std::endl;
char level ;
std::cin >> level;
switch (level){
case 'A':
std::cout << "优秀" << std::endl;
break;
case 'B':
std::cout << "良好" << std::endl;
break;
case 'C':
std::cout << "及格" << std::endl;
break;
case 'D':
std::cout << "仍需继续努力" << std::endl;
break;
default:
std::cout << "输入错误。" << std::endl;
break;
}
return ;
}
循环
while
#include <iostream>
int main (){ int count = ;
while(count < ){
std::cout << "红灯还在亮着..." << std::endl;
cout++;
}
return ;
}
do - while
#include <iostream>
int main (){ int count = ;
do{
std::cout << "红灯还在亮着..." << std::endl;
cout++;
}while(cout < ); return ;
}
while 和 do - while 的区别: 前者属于先判断后执行,后者属于先执行后判断
for
#include <iostream>
int main (){
for(int cout = ; cout < ; cout ++){
std::cout << "红灯还在亮着..." << std::endl;
}
return ;
}
continue 和 break和在Python中的作用一样,contince属于跳过此次循环继续下一次循环,break结束break所在的这层循环
c++ 第一天 变量、判断、循环的更多相关文章
- SQLserver中的常量与变量、判断循环语句
数据库中的变量与常量 数据库中定义变量 [起临时存储数据的作用] ---数据库中定义变量(运行时要从头到尾进行运行,从定义变量开始到赋值) --前面必须加 declare --定义变量 : de ...
- 理解C#系列 / 核心C# / 判断&循环&跳转
判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...
- 07_Python的控制判断循环语句1(if判断,for循环...)_Python编程之路
Python的数据类型在前几节我们都简单的一一介绍了,接下来我们就要讲到Python的控制判断循环语句 在现实编程中,我们往往要利用计算机帮我们做大量重复计算的工作,在这样的情况下,需要机器能对某个条 ...
- php变量判断为空的几种方法
1.isset 主要用来判断变量是否被初始化过 注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右 2.empty 可以将值为 " ...
- shell if判断(曾经被一个字符串相等的判断纠结半小时,最后只是if后少了个空格!) 和 awk引用外部变量判断
一.if判断 数字: $A=12 $B=15 if(("$A"<"$B")) if(("$A"=="$B")) 字 ...
- 有趣的bug——Java静态变量的循环依赖
背景 是的,标题没有错误,不是Spring Bean的循环依赖,而是静态变量之间的循环依赖. 近期的项目均是简单的Maven项目,通过K8S部署在阿里云上,其配置文件读取规则如下所示: (1) 优先读 ...
- 第一篇、javascript变量和循环
一.代码存放位置 理论上放在body和head中都可以,但是推荐放在body代码块底部,因为Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在bo ...
- Java 变量、循环、判断
粗糙笔记不喜勿喷 Java 8大基本类型 第一类:逻辑型(boolean) 1.boolean类型只存在true(真),false(假)两种形式 例: boolean a=true; boolean ...
- python基础一(安装、变量、循环、git)
一.开发语言分类 系统的开发语言有java.c++.c#.python.ruby.php等等,开发语言可分为编译型语言和解释型语言. 编译型语言就是写好代码之后就把代码编译成二进制文件,运行的时候运行 ...
随机推荐
- NOIp (on line) 入门组 2020 总结
得分情况 : 估分: 100+30+30=160: 实际: 95+70+25=190: T1 : 题意: 有n块钱,买三种文具,分别为 a:7元.b:4元.c:3元,问怎么买能让n元钱全部用完,而且使 ...
- Netty 源码解析(二):Netty 的 Channel
本文首发于微信公众号[猿灯塔],转载引用请说明出处 接下来的时间灯塔君持续更新Netty系列一共九篇 Netty源码解析(一):开始 当前:Netty 源码解析(二): Netty 的 Channel ...
- 与跨域相关的 jsonp 劫持与 CORS 配置错误
参考文章: CORS(跨域资源共享)错误配置漏洞的高级利用 JSONP劫持CORS跨源资源共享漏洞 JSONP绕过CSRF防护token 读取型CSRF-需要交互的内容劫持 跨域资源共享 CORS 详 ...
- CountDownLatch 线程工具类
CountDownLatch:概念是,允许一个或多个线程等待其他线程完成操作: 在线程基础知识中,学习过线程的join方法,当前线程阻塞等待join线程执行完毕才能执行: 测试代码如下: public ...
- P4408 逃学的小孩 题解
题目描述 Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:"喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?"一听说要考试,Chris的父母就心 ...
- 博弈论 | 详解搞定组合博弈问题的SG函数
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天这篇是算法与数据结构专题的第27篇文章,我们继续深入博弈论问题.今天我们要介绍博弈论当中非常重要的一个定理和函数,通过它我们可以解决许多 ...
- 一篇文章教会你如何将DOM转换为virtual DOM
[一.Virtual DOM简介] Virtual DOM是虚拟节点,它通过Javascript的Object对象模拟DOM中的节点,然后通过特定的render方法将其渲染成真实的DOM节点. 浏览器 ...
- 关于jwt6.0.0版本algorithms should be set报错的解决方案
2020.7.7日jwt更新之后,安装的express-jwt模块会默认为6.0.0版本,我将之前的auth.js文件引入时控制台报错,提示algorithms should be set,中文译为应 ...
- CVE-2020-5902 简单复现
这几天通报了f5的一个漏洞,想着先弄个环境保存着,说不定后面就用到了.. 1.漏洞描述 近日,F5官方发布公告,修复了流量管理用户界面(TMUI)中存在的一个远程代码执行漏洞(CVE-2020-5 ...
- ElasticSearch 定时批量删除N天前的数据
描述: 之前我已经完成了使用ElasticSearch.kibana.filebeat.三个工具完成分布式集群收集 分布在各个ip地址上的微服务日志,这样就可以统一的在一个服务器上查看了所有的微服务产 ...