admin管理员组文章数量:1599412
前言
再来看一个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
版权声明:本文标题:c++ while(condition) 中condition的一些思考 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728322212a1153973.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论