前言

再来看一个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的一些思考相关推荐

  1. Lock锁中ReentrantLock中Condition的使用

    package com.lezu.springboot.controller;import java.util.concurrent.locks.Condition; import java.util ...

  2. 多线程中Condition的用法

    多线程中Condition的用法与Object中wait.notify.notifyAll用法非常的相似 Condition与Lock对象搭配完成等待唤醒机制 首先我们需要创建Condition对象 ...

  3. java condition原理_java中Condition接口原理及实现

    Condition是在java 1.5中才出现的,它用来替代传统的Object的wait().notify()实现线程间的协作,相比Object的wait().notify(),使用Condition ...

  4. Java中condition的用法_java condition 使用

    Condition是在java1.5才出现.它用来替换传统的 wait(), notify()实现线程之间的协作.但是更加强大. Condition用 await(), signal, signalA ...

  5. mysql中condition的用法,mybatis的condition使用

    实体类等不赘述. 1.新建一个BaseMapper文件,继承几种基础mapper,可根据需求自行添加 public interface MyMapper extends BaseMapper, Con ...

  6. php condition 语法,condition.class.php

    ## 简介 文件名:condition.class.php 名称:筛选条件生成辅助 作用:用于简化筛选,搜索条件生成时的大量代码: 作者:高飞 QQ:56667115 官网:[http://www.d ...

  7. 高中数学对计算机,高中数学在计算机中的运用及思考.doc

    <高中数学在计算机中的运用及思考.doc>由会员分享,可在线阅读,更多相关<高中数学在计算机中的运用及思考.doc(6页珍藏版)>请在人人文库网上搜索. 1.高中数学在计算机中 ...

  8. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程...

    简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.IO ...

  9. 课程教学c语言遇到的问题,C语言教学中的几点思考

    C语言教学中的几点思考 马稳 (西安科技大学计算机学院,陕西.西安,710054) 摘要: 本文针对作者在<C语言程序设计>教学常遇到的一些问题作了思考,从教学中使用的教学手段.教学方法和 ...

  10. 职业教育计算机教学,浅析职业教育中的计算机教学思考.doc

    浅析职业教育中的计算机教学思考.doc (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 浅析职业教育中的计算机教学思考摘要:在计算机应 ...

最新文章

  1. sql and和in能连用吗_解析法律英语中【同义词连用】现象
  2. SPI-软件开发注意事项
  3. 计组第一章(唐朔飞)——计算机系统概述章节总结
  4. 2021 年,Java 开发者值得学习的 13 项技能
  5. 查看进程占用,并kill掉
  6. python的人工智能和c++的有什么区别_为什么人工智能岗位有些招聘C/C 有些招聘Python到底哪门编程语言更重要(恰恰相反C++在人工智能方面的用处很大)...
  7. QT【001】- 基础写在前面的话
  8. 11个Java 开源 socket框架
  9. mysql如何加快备份和恢复速度_加速mysql备份和恢复
  10. Java信息管理系统模板思维导图
  11. optionnally mysql_关于Tomcat与MySQL连接池问题的解析!
  12. 肥猫学习日记------查找与排序(一)
  13. Docker常用的命令
  14. 无魔法插件 - ChatGPT Sidebar with GPT-4
  15. Linux下的文本编辑工具 - vi
  16. 爬虫实战(1)————百度首页爬取
  17. Windows句柄剖析
  18. 记录借款、还款、修改的详细步骤
  19. _014_Linux_VMware该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权
  20. Debug--Undefined subroutine

热门文章

  1. stringbuffer java API_java API中Object,String,Stringbuffer,StringBuilder的总结
  2. 苹果充电器怎么辨别真假_9款热门充电器盘点——苹果、Anker、Thinkplus、紫米、小米、锤子,谁更值得买?...
  3. springcloud gateway介绍
  4. sid图像数据_【技术前沿】首届“水下机器人目标抓取大赛”第一名的图像增强方法...
  5. Introduction to Computer Networking学习笔记(十一):flow control 滑动窗口详解
  6. java在微信的应用_java版微信公众平台消息接口应用示例
  7. python字符串输入拼接_20200930 024.字符串_转义字符_字符串拼接_字符串复制_input()获得键盘输入...
  8. Angr安装与使用之使用篇(七)
  9. 【问题2】如何保证缓存与数据库的双写一致性?
  10. How can I add a site title refiner