C++基础语法:循环语句

在C++语言中,循环有两大类:while循环和for循环。while循环下面有一个do-while循环。

循环的逻辑如下图所示:

我们可以先来写一个while循环:要求对小于10的正整数进行求和。

我们可以用while循环来写出一段如下所示的代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    
    int count, num;
    count = 0;
    num = 0;
    while (num<10){
        count = count + num;
        num ++;
    }
    
    cout << count << endl;
    
    return 0;
}

运行的结果为:

45

或者问题也可以复杂一点:要求输入两个正整数,对两个正整数之间的数(包括两个正整数)进行求和:

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    
    int small,big,count;
    count = 0;
    cin >> small >> big;
    
    while (small <= big){
        count = count + small;
        small ++;
    }
    
    cout << count << endl;
    
    return 0;
}

while循环可能会一次都不会执行,当条件被测试且结果为假时,会跳过循环主体,直接执行紧接着 while 循环的下一条语句。如果循环被执行,那么while循环的条件需要被循环的主体进行改变,如此才会出现while循环被终止的情况,否则会进入无限死循环当中。

while循环常见的一个问题是:输入一个正整数n,要求打印出来斐波那契数列的前N项。

斐波那契数列的定义可以参考下图:

代码如下所示:

#include<iostream>
using namespace std;
typedef long long ll;
int main(){
    int n;
    cin >> n;
    ll t1 = 0,t2 = 1,t3;
    while(n--){
        cout << t1 << ' ';
        t3 = t1 + t2;
        t1 = t2;
        t2 = t3;
    }
    return 0;
}

do-while循环不常用,do-while循环和while循环的区别在于:do-while循环会先对代码进行一次执行,然后再进行while语句的判断:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

运行的结果为:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

通常情况之下,我们只使用while循环。

在C++语言中,最常用的还是for循环,for循环更加的适合编写和阅读:

假设我们要求求0~100之间的3的倍数的和,我们可以写如下所示的一个代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
    
    int i = 0;
    int sum = 0;
    
    for (i; i <= 100; i++){
        if (i%3 == 0){
            sum += i;
        }
    }
    
    cout << sum << endl;
    
    return 0;
}

求得结果为:

1683

break关键词可以用来强制从循环中退出:

我们可以写一段如下所示的代码:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       cout << "a 的值:" << a << endl;
       a = a + 1;
       if( a > 15)
       {
          // 终止循环
          break;
       }
   }while( a < 20 );
 
   return 0;
}

运行的结果为:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15

需要注意:如果使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。

与break对应的关键词为continue,continue会跳过需要执行的语句并且直接进入对下一个循环的判断:

代码如下所示:

#include <iostream>
using namespace std;
 
int main ()
{
   // 局部变量声明
   int a = 10;

   // do 循环执行
   do
   {
       if( a == 15)
       {
          // 跳过迭代
          a = a + 1;
          continue;
       }
       cout << "a 的值:" << a << endl;
       a = a + 1;
   }while( a < 20 );
 
   return 0;
}

打印的结果为:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

可以发现当a=15的时候,代码被跳过了没有执行。

同样的,我们也刻意让for循环中嵌套for循环:查找0~100之间的质数:

#include <iostream>
using namespace std;
 
int main ()
{
    int i, j;
    for(i=2; i<100; i++) {
        for(j=2; j <= (i/j); j++) {
            if(!(i%j)) {
                break; // 如果找到,则不是质数
            }
        }
        if(j > (i/j)) {
            cout << i << " 是质数\n";
        }
    }
    return 0;
}

运行的结果为:

2 是质数
3 是质数
5 是质数
7 是质数
11 是质数
13 是质数
17 是质数
19 是质数
23 是质数
29 是质数
31 是质数
37 是质数
41 是质数
43 是质数
47 是质数
53 是质数
59 是质数
61 是质数
67 是质数
71 是质数
73 是质数
79 是质数
83 是质数
89 是质数
97 是质数

循环的一个典型的问题是打印菱形:

代码可以如下所示:

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        if(i<(n+1)/2)//判断是否在上面的三角形
        {
            for(int j=0;j<(n-1)/2-i;j++) cout<<" ";
            for(int j=0;j<i*2+1;j++) cout<<"*";
        }
        else
        {
            for(int j=0;j<i-(n-1)/2;j++) cout<<" ";
            for(int j=0;j<(n-i)*2-1;j++) cout<<"*";
        }
        cout<<endl;
    }
}

输入7,打印的结果为:

   *
  ***
 *****
*******
 *****
  ***
   *
  • 14
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++是一种通用的编程语言,它支持面向对象的编程风格,并且具有强大的系统编程能力。下面是C++的一些基础语法: 1. 注释:在C++中,注释可以用来解释代码,以便于其他人阅读和理解。单行注释使用双斜线(//),多行注释使用斜线和星号(/* ... */)。 2. 标识符:标识符是变量、函数、类等的名称。标识符由字母、数字和下划线组成,并且以字母或下划线开头。 3. 变量:在C++中,需要声明变量来存储数据。变量的声明包括类型和名称。例如,int表示整数类型,而float表示浮点数类型。 4. 数据类型:C++提供了多种数据类型,包括整型(int、short、long)、浮点型(float、double)、字符型(char)、布尔型(bool)等。 5. 运算符:C++支持各种运算符,例如算术运算符(+、-、*、/)、关系运算符(==、!=、<、>)、逻辑运算符(&&、||、!)等。 6. 控制流语句:C++提供了多种控制流语句,例如条件语句(if-else)、循环语句(for、while、do-while)、跳转语句(break、continue、return)等。 7. 函数:函数是可重用的代码块,用于执行特定的任务。函数由函数头和函数体组成,函数头包括返回类型、函数名和参数列表。 8. 类和对象:C++是面向对象的语言,支持类和对象的概念。类是一种用户定义的数据类型,用于封装数据和方法。对象是类的实例,可以通过调用对象的方法来操作数据。 这只是C++语言的一些基础语法,还有很多其他的概念和特性。如果你对某个特定的主题有更深入的兴趣,我可以为你提供更详细的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值