GVKun编程网logo

goto,break和continue语句,C语言goto,break和continue跳转语句详解(c语言goto语句可以跳转的位置)

14

本文将分享goto,break和continue语句,C语言goto,break和continue跳转语句详解的详细内容,并且还将对c语言goto语句可以跳转的位置进行详尽解释,此外,我们还将为大家带

本文将分享goto,break和continue语句,C语言goto,break和continue跳转语句详解的详细内容,并且还将对c语言goto语句可以跳转的位置进行详尽解释,此外,我们还将为大家带来关于20180226 控制语句 swith语句 while语句 break和continue 练习、3.5 break和continue语句、break和continue的区别、break和continue语句的区别的相关知识,希望对你有所帮助。

本文目录一览:

goto,break和continue语句,C语言goto,break和continue跳转语句详解(c语言goto语句可以跳转的位置)

goto,break和continue语句,C语言goto,break和continue跳转语句详解(c语言goto语句可以跳转的位置)

控制程序流程跳转的通常有 goto、break、continue 等语句。

goto语句

goto 语句是一种无条件流程跳转语句,通常 goto 语句与 if 语句结合使用,当满足一定条件时,程序流程跳转到指定标号处,接着往下执行。

定义语句标识的格式如下。

语句标识:语句;

其中,“语句标识”可以是任一个合法的标识符,如 pos_1、pos_2、label_1、label_2 等都是合法的语句标识。注意,语句标识后的冒号不能省略。

goto 语句的调用语法格式为:

goto 语句标号;

程序将从对应“语句标号”的代码处开始往下执行。

【例 1】分析以下程序,了解 goto 语句的使用。
#include<stdio.h>
int main (void){
    int n;
    pos_1:
        printf("请输入一个正整数:");
        scanf("%d",&n);
        if(n<0)
        {
            printf("输入错误!\n");
            goto pos_1;
        }
        printf("成功输入正整数:%d\n",n);
        return 0;
}
代码分析:在上述程序代码中,有一个语句标号 pos_1。该程序的执行流程如下:
  1. pos_1 标号处。先提示用户“请输入一个正整数:”。
  2. 如果用户输入的是正整数,则提示“成功输入正整数:***”。执行第 4 步。
  3. 如果用户输入的是负数,则进入循环体,提示“输人错误!”。程序执行流程跳转到 pos_1 处,即跳转到第 1 步,继续往下执行。
  4. 程序结束。

程序运行结果:假设某次运行,依次输入 -2、-6、3 等数字,其运行结果如下:
请输人一个正整数:-2
输入错误!
请输入一个正整数:-6
输入错误!
请输入一个正整数:3
成功输入正整数:3

通过上述执行流程及运行结果的分析,可以发现该例中使用 goto 跳转语句实现了循环的功能。故可以使用循环结构的代码替换该 goto 结构的代码。

等价实现代码:
#include<stdio.h>
int main (void)
{
    int n;
    printf ("请输入一个正整数:");
    scanf("%d",&n);
    while(n<0)
    {
        printf ("输入错误!\n");
        printf ("请输入一个正整数:");
        scanf("%d",&n);
    }
    printf ("成功输入正整数:%d\n",n);
    return 0;
}
使用 goto 语句可能会造成程序层次不清晰,可读性差,故在实际编程中,应尽量少使用或避免使用 goto 语句。

break语句

当执行到循环体中的 break 语句时,将终止 break 所在该层的循环,从该层循环体之后的语句开始继续执行。

break 的执行流程如下所示。

单重循环情况:选用 while 循环结构示意,do-while 循环、for 循环同样适用。

while (循环判断表达式)
{
    ...
    if(条件表达式)
        break;
    循环体中break后的语句;
}
循环体后的第 1 条语句;
循环体后的第 2 条语句;
...

在循环体中,当满足一定条件执行到 break 语句时,终止 break 所在的该层循环,即“循环体中 break 后的语句”部分将不再被执行,程序执行流程转向从“循环结构后的第 1 条语句”处,开始继续往后执行。

双重循环情况:使用双重 for 循环嵌套结构示意,其他类型的循环嵌套组合同样适用。

for (;循环判断表达式1;)
{
    ...
    for(;循环判断表达式2;)
    {
        ...
        if(条件表达式)
            break;
        内层循环体中break后的语句;
    }
    内层循环结构后的第1条语句; 内层循环结构后的第2条语句;
    ...
}

在内层循环中,当满足一定条件执行到 break 语句时,仅结束 break 所在内层循环的执行(在本轮外层循环中,“内层循环体中 break 后的语句”部分不再被执行),程序执行流程跳转到“内层循环结构后的第 1 条语句”所在的外层循环体处,开始继续执行。

【例 2】分析以下程序输出结果,掌握 break 语句的使用方法。
#include<stdio.h>
int main (void)
{
    int s=0,i;
    for(i=1;i<=10;i++)
    {
        if (6==i)
            break;
        s+=i;
    }
    printf("sum=%d\n",s);
    return 0;
}
当 i< 6时,均不执行 break 语句,可以将其忽略。即 i<6 时,等价于如下代码。
for(i=1;i<=10;i++)
{
    s+=i;
}
相当于执行了加法运算 s=1+2+3+4+5=15。

当 i=6 时,执行 break 语句,立即终止 break 语句所在的该层 for 循环,故 i=6 并没有累加到 s 上,接着从 for 循环结构后的第一条语句 printf("sum=%d\n",s); 处开始继续执行。

程序运行结果为:
sum=15

continue语句

在循环体中设置 continue 语句,同样可以改变循环的执行流程,只不过它不像 break 那样结束整个循环体,而是仅结束本次循环体的执行,提前进入下一次循环。

continue 语句的执行流程如下所示(选用 for 循环结构示意)。

for(初始表达式;循环判断表达式;增量表达式)
{
   ...
   if(条件表达式)
       continue;
    循环体中continue后的所有语句;
}

当在上述 for 循环中执行到 continue 语句时,本次循环体的执行流程将跳过“循环体中 continue 后的所有语句”,接着执行“增量表达式”部分,然后执行“循环判断表达式”,即提前进入下一次循环的准备工作。

【例 3】分析以下程序输出结果,掌握 continue 语句的使用方法。
#include<stdio.h>
int main (void)
{
    int s=0,i;
    for(i=1;i<=10;i++)
    {
        if(6==i)
            continue;
        s+=i;
    }
    printf("sum=%d\n",s);
    return 0;
}
程序分析:
1) 当 i≠6 时,也就是 i≤5 时,忽略 continue 语句,相当于:
for(i=1;i<=10; i++)
{
    s+=i;
}
即:s=1+2+3+4+5

2) 当 i=6 时,执行 continue 语句,本次循环(i=6)体中 continue 后的语句 s+=i; 将被忽略,接着执行增量表达式 i++,相当于 i=6 没有累加到 s 上。

3) 后续的循环中 i 不再可能等于 6,故 continue 语句也将被忽略。故程序功能相当于把 1〜10 中除 6 之外的 9 个数累加到 s 上。即 s=1+2+3+4+5+7+8+9+10=49。

运行结果为:
sum=49

20180226 控制语句 swith语句 while语句 break和continue 练习

20180226 控制语句 swith语句 while语句 break和continue 练习

控制语句:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>控制语句</title>
<script type="text/javascript">
    //var a=10;
    //只有两种情况下
    //if(a==5){
    //    alert("a=5");
    //}else{
    //    alert("a!=5");
    //}
    //多种情况下
//    var a=prompt();//输入弹窗
//    if(a<5){
//        alert("a<5");
//        }else if(a>=5&&a<=10){
//            alert("a>=5并且a<=10");
//        }else if(a>10&&a<20){
//            alert("a>10并且a<20");
//        }else{
//            alert("a不在范围内");
//        }
//    var a=prompt();
//    if(a>0&&a<100){
//        alert("正确");
//    }else {alert("错误");}
        
    var a=prompt()
    if(a<=50){
        alert("使劲努力,不要偷懒");
    }else if(a>50&&a<=60){
            alert("就差一点,再加把劲");
    }else if(a>60&&a<=70){
        alert("一般般,继续努力");
    }else if(a>=80){
            alert("你学的不错,值得表扬!");
    }else{
        alert("不在范围内,重新输入");
    }
                                   
    </script>
</head>

<body>
</body>
</html>

switch语句:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>switch语句</title>
<script type="text/javascript">
    //var a=prompt("请输入今天是几号");
    //var b=parseInt(a);//将用户输入的字符串类型强转为数值类型
    //switch(b){
    //    case 26://条件1
    //        alert("今天是周一");//执行语句
    //        break;//退出,终止switch语句
    //    case 27:;
    //        
    //        alert("今天是周二");
    //        break;
    //    case 28:
    //        alert("今天是周三");
    //        break;
    //    case 1:
    //        alert("今天是周四");
    //        break;
    //    case 2:("今天是周五");
    //        break;
    //    case 3:("今天是周六");
    //        break;
    //    case 4:("今天是周天");
    //        break;
    //    default:
    //        alert("你输入的数据有误,请重新输入");
    //}
    //</script>
    <script type="text/javascript">
        var a=prompt("请输入月份");
        var b=parseInt(a);
        switch(b){
            case 1:
                alert("31天");
                break;
            case 2:
                alert("28天")
                break;
            case 3:
                alert("31天")
                break;
            case 4:
                alert("30天");
                break;
            case 5:
                alert("31天")
                break;
            case 6:
                alert("30天")
                break;
            case 7:
                alert("31天");
                break;
            case 8:
                alert("31天")
                break;
            case 9:
                alert("30天")
                break;
            case 10:
                alert("31天");
                break;
            case 11:
                alert("30天")
                break;
            case 12:.
                alert("31天")
                break;
            default:
                alert("你输入的内容有误,请重新输入");
                
        }
    </script>
</head>

<body>
</body>
</html>

while语句:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>while语句</title>
<script type="text/javascript">
    var i=3;
    alert(i++);//3
    alert(i);//4
    alert(++i);//4
    alert(i);//4
    for(var i=0;i<10;i++){
        alert(i);
    }
    for(var i=9;i>=0;i--){
        alert(i);
    }
    var arr=[1,2,3];
    alert((arr[0]);
    alert(arr[1]);
    alert(arr[2]);
    //第一种for循环
    for(var i=0;i<arr.length;i++)
        {
            alert(arr[i]);
        }
//    //第二种for循环
//var i=0
//for(i in arr)
//{
//alert(a[i]);
//}
//    //while输出数组(适合判断一个条件的循环)
//    var i=0;
//    while(i<arr.length){
//        alert(a[i]);
//        i++;
//    }
    //do...while输出数组(适合判断一个条件的循环)
//    var i=0;
//    do{
//        alert(a[i]);
//    }while(i<arr.length);
    //while和do...while的区别
    //while(false){
            alert("执行了");
    }
    do{
        alert("执行了");
    }while(false){
    //输入正整数n,求1-n的和。
        1.写一个弹窗
        2.定义一个变量取接收这个值
        3.循环(计算1--n的和)
        var n=prompt("请输入一个正整数");
        var sum=0;
        for(var i=1;i<=n;i++){
            sum=sum+i;
        }
        alert(sum);
        求水仙花数:求100到1000以内的水仙花数:
        for循环(100-1000以内的数)
        1.先把这个三位数拆开,拆成153(%2.1的三次方+5的三次方+3的三次方是否跟它的本身153相等。(iffor(var i=100;i<1000;i++){
            var bai=parseInt(i/100);//获取百位
            var shi=parseInt(i/10)%10;//获取十位
            var ge=i%10;//获取个位
            if(bai*bai*bai*+shi*shi*shi+ge*ge*ge==i)
                {
                    alert(i);
                }
        }
    </script>
</head>

<body>
</body>
</html>

break和continue:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>break和continue</title>
<script  type="text/javascript">
    for(var i=0;i<=5;i++){
        if(i==3){
            //break;012
            continue;//01245
        }
        document.write(i+"<br>")
    }
    </script>
</head>

<body>
</body>
</html>

练习:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>练习</title>
<script type="text/javascript">
//    //1.100所有数的和
//    var sum=0;
//    for(var i=0;i<100;i++){
//        sum=sum+i;
//        
//    }document.write(sum);
//    //2.100内能被7整除的数
//    for(var i=0;i<100;i++){
//        if(i%7==0){
//            document.write(i+"<br> ")
//        }
//    }
    var a=prompt("请输入第一个数")
    var d=parseFloat(a)
    var b=prompt("请输入运算符号")
    var c=prompt("请输入第二个数")
    var e=parseFloat(c)
    if (b=="+") {
        alert(d+e);
    }else if(b=="-"){
        alert(d-e);
    }else if(b=="*"){
        alert(d*e);
    }else if(b=="/"){
        alert(d/e);
    }
    else {
        alert("你输入的符号有误,请重新输入");
    }    
        
    </script>
</head>

<body>
</body>
</html>

 

3.5 break和continue语句

3.5 break和continue语句

任何循环语句的主体部分,亦可用break和continue控制循环的流程。
  • 其中,break用于强行退出循环,不执行循环中剩余的语句。
  • 而continue则停止执行当前的循环,然后退回循环起始,开始新的循环
例:
public class BreakAndContinue {
    public static void main(String[] args) {
        int sum=0,i,j;
        for(i = 1; i < 10; i++) {    //计算1+3+5+7+9
            if(i % 2== 0) 
                continue;
            sum=sum+i;
        }
        System.out.println("sum="+sum);
        for(j = 2; j <=50; j++) {    //求50以内的素数
            for(i = 2; i <=j/2; i++) { 
                if(j % i== 0) 
                    break;
            }
            if(i>j/2){     
                System.out.println(j+"是素数");
            }
        }
    }
}

break和continue的区别

break和continue的区别

一、 Break语句功能:

 

1、 switch语句中,break语句会终止其后语句执行,退出switch语句

 

2、 使一个循环立即结束,也就是在循环中遇到break语句时,循环立即终止

 

3、 注:1、break语句在循环中使用,总是与if一起使用,当条件满足时,退出循环

 

2、如果循环体中使用switch语句,而break出现在switch语句中,则它只用于结束switch,而不影响循环

 

3、break语句只能将结束包含它的最内层循环,而不能跳出多层循环

 

二、 Continue语句功能:

 

1、 它只能出现在循环体中,其功能是立即结束本次循环,即continue语句时,不执行循环体中continue后的语句,立即转去判断循环条件是否成立

 

三、break和continue的语句区别:

 

Continue只是结束本次循环,而不是终止整个循环语句的执行

 

Break则是终止整个循环语句的执行,转到循环语句后的下一条语句去执行的

break和continue语句的区别

break和continue语句的区别

谁能告诉我breakcontinue声明之间的区别?

答案1

小编典典

break离开一个循环,continue跳到下一个迭代。

关于goto,break和continue语句,C语言goto,break和continue跳转语句详解c语言goto语句可以跳转的位置的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于20180226 控制语句 swith语句 while语句 break和continue 练习、3.5 break和continue语句、break和continue的区别、break和continue语句的区别的相关知识,请在本站寻找。

本文标签: