c++控制结构

与顺序执行不同到是,c++提供了多种控制结构支持更为复杂到执行路径。

条件是一个可求值到表达式,所以可以测试其结果,如果结果值非0,那么条件为真,反之..

块: 块是被花括号括起来到语句序列,c++中,块可以用于任何可以用一条语句的地方

 for (int val = 1; val <= 10; ++val);
       std::cout << val;    
 
test.cpp: In function ‘int main()’:
test.cpp:6: error: name lookup of ‘val’ changed for ISO ‘for’ scoping
test.cpp:6: note: (if you use ‘-fpermissive’ G++ will accept your code)<span style="font-family:arial;font-size:12px;line-height: 26px;">
</span>

for循环中在 “初始化”部分 定义的变量的作用域范围的一个问题。ISO/ANSIC++ 把在此定义的变量的作用域范围限定在 for 循环体内,或者说,出了循环体之外这个变量就无效了。可以使用‘-fpermissive’使编译通过。 

int i, sum = 0;
    for (i = -100; i <= 100; ++i)
             sum += i;

     std::cout << sum;   

     sum = 0;

在Windows系统下control-z来输入文件结束符,在Unix系统中,通常是control-d

for循环和while循环到优缺点:

在for循环中,循环控制变量的初始化和修改都放在语句头部分,形式较简洁,且特别适用于循环次数已知的情况。在while循环中,循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。两种形式各有优点,但它们在功能上是等价的,可以相互转换。

c++primer 习题1.18 19 20

#include <iostream>
int main()
{
    int a, b;
    int count = 0;
    std::cout <<"please iput two number" << std::endl;
    std::cin >> a >> b;
    if (a>b)
    {
        for (int i = a; i >= b; i--)
        {
                std::cout << i <<" ";
                count++;
                if (count%10 == 0)
                {
                        std::cout << std::endl;
                }
        }
    }
    else
    {
        for (int i = a; i <= b; i++)
        {
                std::cout << i << " ";
                count++;
                if (count%10 == 0)
                {
                        std::cout << std::endl;
                }
        }

    }
    return 0;
}
int main() 
{
    int a, b;
    int count = 0;
    int tempa, tempb;
    std::cout <<"please iput two number" << std::endl;
    std::cin >> a >> b;
    tempa = a;
    tempb = b;
    if (a > b)
    {   
            while (a > tempb) 
            {   
                    b += a;  
                    a --; 
            }   
            std::cout <<"number" << b;
    }   
    else
    {   
            while (tempa < b)
            {   
                    a += b;
                    b --; 
            }   
            std::cout <<"number" << a;
    }   
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值