c++入门笔记(13)循环语句

goto转向语句

标号它是由一个名字加上一个冒号”:“来组成的。该标号通常被放置在一段可执行的c++语句的左边,通过它后面的goto语句来实现跳转。

goto是转向语句,它表示无条件地跳转到标号处。
由于goto语句能直接跳到程序的某一处开始执行,因此会导致许多不易察觉的错误,并且使程序结构看上云不那么严密,松散很多。
所以不要再用goto语句,goto语句一旦出了错,要调试起来是非常困难的。

例:

#include <iostream>

int main(){
    int i = 1;
number:++i;             //nubmer是标号
    std::cout << "*";
    if(i<10){           //循环了9次,所以输出了9个"*"
        goto number;  //无条件跳转到number标号处
    }

    std::cout << "\n程序结束!\n";
    std::cout << "*********\n";

    return 0;
}

输出:

*********
程序结束!
*********

while循环语句

while语句只要它后面的条件为真,那么就会不断的执行一段代码。while语句一定要满足条件才会执行,直到条件不满足才会跳出循环。

例:

#include <iostream>

int main(){

    int i = 1;
    while (i<10) {
        std::cout << "*";
        ++i;
    }
    std::cout << "\n程序结束\n";
    std::cout << "*********\n";
    return 0;
}

输出:

*********
程序结束
*********

字符条件的while循环语句

字符也可以用于while循环语句的条件。

例:

#include <iostream>

int main(){

    char choice = 'y';
    while(choice == 'y' || choice == 'Y'){
        std::cout << "问君能有几多愁,怡似一江春水向东流\n";
        std::cout << "再看一遍?(Y/N):";
        std::cin >> choice;
    }

    std::cout << "程序结束!\n";

    return 0;
}

输出: 输入y

问君能有几多愁,怡似一江春水向东流
再看一遍?(Y/N):y
问君能有几多愁,怡似一江春水向东流
再看一遍?(Y/N):

输出:输入n

问君能有几多愁,怡似一江春水向东流
再看一遍?(Y/N):n
程序结束!

限定次数的while循环语句

#include <iostream>

int main(){

    int count = 0;  //计次
    int many;       //循环次数

    std::cout << "你想看几次?";
    std::cin >> many;

    while(count < many){
        std::cout << "问君能有几多愁,怡似一江春水向东流\n";
        ++count;    //计次
    }

    std::cout << "程序结束!\n";

    return 0;
}

输出:输入4

你想看几次?4
问君能有几多愁,怡似一江春水向东流
问君能有几多愁,怡似一江春水向东流
问君能有几多愁,怡似一江春水向东流
问君能有几多愁,怡似一江春水向东流
程序结束!

continue和break语句

假如你想让程序执行到循环体的某处时,忽略后面所有语句,跳到while循环开始处重新开始,就使用continue;

例:

#include <iostream>

int main(){
    int i = 0;
    while(i<3){
        i++;
        if(i == 1){ //如果i的值是1,那么就不输出
            continue;   //跳到循环开始处重新开始循环
        }
        std::cout << "i的值是:" << i << std::endl;
    }

    return 0;
}

输出:

i的值是:2
i的值是:3

break语句

当在while循环体内,可使用break语句跳出循环。

注:break跳出的是循环,而不是退出程序。

例:

#include <iostream>

int main(){
    int i = 0;
    while(i<3){
        i++;
        if(i == 1){ //如果i的值是1,那么就跳出while循环
            break;   //跳出循环
        }
        std::cout << "i的值是:" << i << std::endl;
    }

    std::cout << "程序结束!\n";
    return 0;
}

输出:

程序结束!

永不休止的while循环

当while循环条件是1或是true时,如不在循环体内设定跳出条件(如break语句),那么就会一直循环下去。

例:

#include <iostream>

int main(){

    while(true){

        int n;
        std::cout << "请输入一个数字:";
        std::cin >> n;
        std::cout << "您输入的数字是:" << n << std::endl;
    }

    return 0;
}

输出: 因没有退出条件,所以会一直循环下去。

请输入一个数字:1
您输入的数字是:1
请输入一个数字:2
您输入的数字是:2
请输入一个数字:3
您输入的数字是:3
请输入一个数字:4
您输入的数字是:4
请输入一个数字:5
您输入的数字是:5
请输入一个数字:

do…while循环

do…while循环保证无论在什么样的情况下,循环都会最少执行一次。

#include <iostream>

int main(){

    int many;
    std::cout << "你想看几次?";
    std::cin >> many;
    do{
        many--;
        std::cout << "问君能有几多愁,怡似一江春水向东流\n";
    }while(many>0);

    std::cout << "程序结束!\n";

    return 0;
}

输出:输入0

你想看几次?0
问君能有几多愁,怡似一江春水向东流
程序结束!

输出:输入3

你想看几次?3
问君能有几多愁,怡似一江春水向东流
问君能有几多愁,怡似一江春水向东流
问君能有几多愁,怡似一江春水向东流
程序结束!

for循环

for(初始化语句,条件判断语句,累加语句或语句);
初始化语句:用于初始化,可多个变量,变量与变量间使用逗号”,”隔开
条件判断语句:用于是否进行循环的判断
累加语句或语句:累加
如:
for(int i=0;i<5;i++){}
该语句指进行5次循环。
先执行初始化语句,再进行条件判断,如条件为真,那么执行循环体内的代码,为假就退出循环。
每循环完一次执行累加语句进行累加,再进行条件判断语句,如条件为真就继续执行,为否退出循环。

例:

#include <iostream>

int main(){

    int many;

    std::cout << "你想看几次?";
    std::cin >> many;    //接收循环次数
    for(int i = 0; i<many; i++){
        std::cout << "问君能有几多愁,怡似一江春水向东流!\n";
    }

    std::cout << "程序执行完毕!\n";

    return 0;
}

输出:输入2

你想看几次?2
问君能有几多愁,怡似一江春水向东流!
问君能有几多愁,怡似一江春水向东流!
程序执行完毕!

例:累加条件位置处写的语句

#include <iostream>

int main(){

    int i = 0;
    for(;i<5;std::cout << "累加条件位置处写的语句 "){
        i++;
        std::cout << "问君能有几多愁!\n";

    }
    return 0;
}

输出:

问君能有几多愁!
累加条件位置处写的语句 问君能有几多愁!
累加条件位置处写的语句 问君能有几多愁!
累加条件位置处写的语句 问君能有几多愁!
累加条件位置处写的语句 问君能有几多愁!
累加条件位置处写的语句

多个初始化变量例子:

#include <iostream>

int main(){
    for(int x= 0, y = 0, z = 0; x<3; x++, y++, z++){
        std::cout << "x:" << x;
        std::cout << "y:" << y;
        std::cout << "z:" << z;
        std::cout << std::endl;
    }

    return 0;
}

条件为空的for循环

只需在条件位置写上”;”。

例:

#include <iostream>

int main(){

    int i = 0;
    for(;i<5;){
        i++;
        std::cout << "问君能有几多愁,恰似一江春水向东流!\n";

    }
    return 0;
}

输出:

问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!

例:

#include <iostream>

int main(){

    int i = 0;
    for(;;){        //3个条件都为空

        if(i<5){    //循环5次
        std::cout << "问君能有几多愁,恰似一江春水向东流!\n";
        }
        else{       //循环5次后跳出循环
            break;
        }
        i++;        //累加条件
    }
    return 0;
}

输出:

问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!
问君能有几多愁,恰似一江春水向东流!

嵌套的for循环

嵌套就是一个循环中包含另一个循环。
外面的循环每执行一次,里面的循环都要完全的执行一次。

例:

#include <iostream>

int main(){

    int a,b;
    char c;
    std::cout << "多少行?";
    std::cin >> a;
    std::cout << "多少列?";
    std::cin >> b;
    std::cout << "什么字:";
    std::cin >> c;

    for(int i = 0; i<a; i++){      //行
        for(int j = 0; j<b; j++){  //列
            std::cout << c << " ";
        }
        std::cout << "\n";
    }

    return 0;
}

输出: 输入4行3列a字

多少行?4
多少列?3
什么字:a
a a a 
a a a 
a a a 
a a a 


switch语句

switch语句可以根据不同的数字或字符选择不同的分支。

break语句可以跳出switch语句。

如switch语句分支中无break,那么它会从当前的case处一直向下执行,直到遇到break语句

switch语句首先检查小括号中的变量,这个变量可以是数字,也可以是字符,也可以是表达式,总之有一个可供判断的值。
如果小括号的值出现在某个case中,与该case相关联的语句就会执行。执行完毕后,break语句会让程序跳出switch语句循环。
假如小括号的值与case所有的数字和字符都不相符,会执行default分支的语句。
如果既没有匹配的值也没有default分支,那么程序会自动退出switch语句。

格式:
switch(变量){
case 1:语句;
break;
case 2:语句;
break;
… …
case 999:语句;
break;
default:语句;
}


#include <iostream>

int main(){

    int choice;
    std::cout << "请输入一个整数:";
    std::cin >> choice;

    switch (choice) {
    case 0:
        std::cout << "您输入的是0\n";
        break;

    case 1:
        std::cout << "您输入的是1\n";
        break;

    case 2:
        std::cout << "您输入的是2\n";
        break;

    case 3:
        std::cout << "您输入的是3\n";
        break;

    default:
        std::cout << "您输入的不是0~3之间的有效数字!\n";

    }
    std::cout << "程序结束!\n";

    return 0;
}

输出:输入3

请输入一个整数:3
您输入的是3
程序结束!

输出:输入5

请输入一个整数:5
您输入的不是03之间的有效数字!
程序结束!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值