c++ while(condition) 中condition的一些思考
前言
再来看一个c++的基础性问题,while循环,一个再熟悉不过的c++语法,一直只知道使用,对于他的一些使用细节缺少认知,下面先看一下基本语法(摘自菜鸟教程)
语法
C++ 中 while 循环的语法:
while(condition) {statement(s); }
在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。
当条件为假时,程序流将继续执行紧接着循环的下一条语句。
流程图
在这里,while 循环的关键点是循环可能一次都不会执行。当条件被测试且结果为假时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。
while(condition)中的condition
condition:也就是while语句执行的条件,语法中是这样说的,condition 可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。
任意表达式:表达式必须返回数值,即可以是任意实数,虚数感觉也没意义(必须返回值得才叫表达式)
当返回的是非0值时,condition为bool值true,返回0时,condition为bool值false
在VC中BOOL类型是int型,并非标准bool类型,其值是int类型
bool(布尔类型)
在C/C++,它的值是 true 或者 false。true 和false 并不是某某库做的 define,他们是C/C++ 的关键字,是内置的布尔变量值.实际上 bool 变量占用了 1 个字节的内存,当值为 false 的时候,实际上存储的是 0x00,为ture时实际上存储的是 0x01
因为内存要addressable,单个bit是没办法寻址的(引用自百度知道https://zhidao.baidu.com/question/134019476.html?qbl=relate_question_2&word=bool%C0%E0%D0%CD%BC%B8%B8%F6%D7%D6%BD%DA)
布尔类型是标准的c++数据类型,值有且仅有两个true或false,那么true可以理解为1(只要非0就是1),false可以理解为0,可以写一段代码测试一下bool类型的输出值是多少
#include <iostream>using namespace std;int main(int argc, char* argv[]){bool testtrue = true;bool testfalse = false;cout << "testtruethe output is number " << testtrue << endl;cout << "testtrue the output is bool(use boolalpha) " << boolalpha << testtrue << endl;cout << "testtrue the output is number(use noboolalpha) " << noboolalpha << testtrue << endl;cout << "testfalse the output is number " << testfalse << endl;cout << "testfalse the output is bool(use boolalpha) " << boolalpha << testfalse << endl;cout << "testfalse the output is number(use noboolalpha) " << noboolalpha << testfalse << endl;system("pause");return 0;}
输出结果:(编译来自:http://cpp.sh/)
从上可以发现,bool类型的变量值可以输出为true/false(利用boolalpha), 也可以输出为1/0
c++ while(condition) 中condition的一些思考相关推荐
- Lock锁中ReentrantLock中Condition的使用
package com.lezu.springboot.controller;import java.util.concurrent.locks.Condition; import java.util ...
- 多线程中Condition的用法
多线程中Condition的用法与Object中wait.notify.notifyAll用法非常的相似 Condition与Lock对象搭配完成等待唤醒机制 首先我们需要创建Condition对象 ...
- java condition原理_java中Condition接口原理及实现
Condition是在java 1.5中才出现的,它用来替代传统的Object的wait().notify()实现线程间的协作,相比Object的wait().notify(),使用Condition ...
- Java中condition的用法_java condition 使用
Condition是在java1.5才出现.它用来替换传统的 wait(), notify()实现线程之间的协作.但是更加强大. Condition用 await(), signal, signalA ...
- mysql中condition的用法,mybatis的condition使用
实体类等不赘述. 1.新建一个BaseMapper文件,继承几种基础mapper,可根据需求自行添加 public interface MyMapper extends BaseMapper, Con ...
- php condition 语法,condition.class.php
## 简介 文件名:condition.class.php 名称:筛选条件生成辅助 作用:用于简化筛选,搜索条件生成时的大量代码: 作者:高飞 QQ:56667115 官网:[http://www.d ...
- 高中数学对计算机,高中数学在计算机中的运用及思考.doc
<高中数学在计算机中的运用及思考.doc>由会员分享,可在线阅读,更多相关<高中数学在计算机中的运用及思考.doc(6页珍藏版)>请在人人文库网上搜索. 1.高中数学在计算机中 ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...
- 课程教学c语言遇到的问题,C语言教学中的几点思考
C语言教学中的几点思考 马稳 (西安科技大学计算机学院,陕西.西安,710054) 摘要: 本文针对作者在<C语言程序设计>教学常遇到的一些问题作了思考,从教学中使用的教学手段.教学方法和 ...
- 职业教育计算机教学,浅析职业教育中的计算机教学思考.doc
浅析职业教育中的计算机教学思考.doc (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 浅析职业教育中的计算机教学思考摘要:在计算机应 ...
最新文章
- sql and和in能连用吗_解析法律英语中【同义词连用】现象
- SPI-软件开发注意事项
- 计组第一章(唐朔飞)——计算机系统概述章节总结
- 2021 年,Java 开发者值得学习的 13 项技能
- 查看进程占用,并kill掉
- python的人工智能和c++的有什么区别_为什么人工智能岗位有些招聘C/C 有些招聘Python到底哪门编程语言更重要(恰恰相反C++在人工智能方面的用处很大)...
- QT【001】- 基础写在前面的话
- 11个Java 开源 socket框架
- mysql如何加快备份和恢复速度_加速mysql备份和恢复
- Java信息管理系统模板思维导图
- optionnally mysql_关于Tomcat与MySQL连接池问题的解析!
- 肥猫学习日记------查找与排序(一)
- Docker常用的命令
- 无魔法插件 - ChatGPT Sidebar with GPT-4
- Linux下的文本编辑工具 - vi
- 爬虫实战(1)————百度首页爬取
- Windows句柄剖析
- 记录借款、还款、修改的详细步骤
- _014_Linux_VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
- Debug--Undefined subroutine
热门文章
- stringbuffer java API_java API中Object,String,Stringbuffer,StringBuilder的总结
- 苹果充电器怎么辨别真假_9款热门充电器盘点——苹果、Anker、Thinkplus、紫米、小米、锤子,谁更值得买?...
- springcloud gateway介绍
- sid图像数据_【技术前沿】首届“水下机器人目标抓取大赛”第一名的图像增强方法...
- Introduction to Computer Networking学习笔记(十一):flow control 滑动窗口详解
- java在微信的应用_java版微信公众平台消息接口应用示例
- python字符串输入拼接_20200930 024.字符串_转义字符_字符串拼接_字符串复制_input()获得键盘输入...
- Angr安装与使用之使用篇(七)
- 【问题2】如何保证缓存与数据库的双写一致性?
- How can I add a site title refiner