admin管理员组

文章数量:1599539

前言

再来看一个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/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

本文标签: condition