C语言学习笔记——程序流程控制(三)

简介: C语言学习笔记——程序流程控制

5.5 跳转控制语句

5.5.1 break

5.5.1.1 break介绍

break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环中

5.5.1.2代码

#include<stdio.h>
void main() {
  int num;
  for (num = 1; num <= 10; num++) {
    if (num == 7) {//如果num = 7,则跳出循环
      break;
    }
    printf("num = %d\n", num);
  }
}

179a2e60ba444754b92a866f45abfecc.png

5.5.1.3 break练习

  1. 100 以内的数求和,求出 当和 第一次大于 20 的当前数
//100 以内的数求和,求出 当和 第一次大于 20 的当前数
#include<stdio.h>
void main() {
  int num=1, sum=0;
  for (num = 1; num <= 100; num++) {
    sum += num;
    if (sum > 20) {
      printf("当前数为%d", num);
      break;
    }
  }
}

12305d1a9196450989428e1eabce91e2.png

实现登录验证,有三次机会,如果用户名为”张无忌” ,密码”888”提示登录成功,否则提示还有几次机会, 请使用 for 循环完成

//实现登录验证,有三次机会,如果用户名为”张无忌” ,密码”888”提示登录成功,否则提示还有几次机会, 请使用 for 循环完成
#include<stdio.h>
#include<string.h>
void main() {
  char account[20] ="", password[20] ="";
  int times = 0;
  for (times = 1; times <= 3; times++) {
    printf("请输入帐号:");
    scanf_s("%s", account, sizeof(account));
    printf("请输入密码 :");
    scanf_s("%s", password, sizeof(password));
    if (strcmp(account, "张无忌") == 0 && strcmp(password, "888") == 0) {
      printf("登录成功!\n");
      break;
    }
    else {
      printf("登录失败,还剩下%d次机会\n", 3 - times);
    }
  }
}

1bfce44cc7754f70810fbca65a809ba3.png

5.5.2 continue

5.5.2.1 countinue介绍

continue 语句用于结束本次循环,继续执行下一次循环

5.5.2.2 continue语法

#include<stdio.h>
void main() {
  int num1, num2;
  for (num1 = 0; num1 <= 3; num1++) {
    for (num2 = 0; num2 < 3; num2++) {
      if (num2 == 2) {
        continue;
      }
      printf("num1 = %d, num2 = %d\n", num1, num2);
    }
  }
}

7ef3e9ac2fed422aaf59ad0207d65f51.png

5.5.2.3 continue注意事项

continue 语句,只能配合循环语言使用,不能单独和 switch/if使用

5.5.2.4 continue练习

  1. 从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为 0 时结束程序【使用 for 循环 ,break, continue 完成】 【positive 正数,negative】
#include<stdio.h>
void main() {
  int positiveCount = 0, negativeCount = 0, count = 0;
  for (; ;) {
    printf("请输入数字:");
    scanf_s("%d", &count);
    if (count > 0) {
      positiveCount++;
      continue;
    }
    else if (count < 0) {
      negativeCount++;
      continue;
    }
    else if (count == 0) {
      break;
    }
  }
  printf("正数的个数是%d,负数的个数是%d", positiveCount, negativeCount);
}

ab5103c2ebd74b838c48407b41da09c2.png

2.某人有 100,000 元,每经过一次路口,需要交费,规则如下: 当现金>50000 时,每次交 5% 当现金<=50000 时,每次交 1000 编程计算该人可以经过多少次路口,使用 while break 方式完成

#include<stdio.h>
void main() {
  double money = 100000, tax = 0.95;
  int count = 0;
  while (money >=1000) {
    if (money > 50000) {
      money *= tax;
      count++;
    }
    else if (money <= 50000) {
      money -= 1000;
      count++;
    }
  }
  printf("可以经过%d次路口", count);
}

7cfc4e60b669442aa8c41796948f6cf1.png

5.5.3 goto

5.5.3.1 goto介绍

  1. C 语言的 goto 语句可以无条件地转移到程序中指定的行
  2. goto 语句通常与条件语句配合使用。可用来实现条件转移,跳出循环体等功能
  3. 在 C程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难

5.5.3.2 goto代码

#include<stdio.h>
void main() {
  printf("start!\n");
  printf("1\n");
  goto label;//跳转到label行
  printf("2\n");
  printf("3\n");
  label://label行
  printf("4\n");
}

2471a2ab45054c6b82f7df1377ebcb91.png


相关文章
|
13天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
32 5
|
13天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
45 4
|
12天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
36 1
|
13天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
23 2
|
13天前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
29 1
|
2月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
89 1
|
2月前
|
存储 文件存储 C语言
深入C语言:文件操作实现局外影响程序
深入C语言:文件操作实现局外影响程序
|
2月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
37 3
|
9天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
36 6
|
27天前
|
C语言
c语言调用的函数的声明
被调用的函数的声明: 一个函数调用另一个函数需具备的条件: 首先被调用的函数必须是已经存在的函数,即头文件中存在或已经定义过; 如果使用库函数,一般应该在本文件开头用#include命令将调用有关库函数时在所需要用到的信息“包含”到本文件中。.h文件是头文件所用的后缀。 如果使用用户自己定义的函数,而且该函数与使用它的函数在同一个文件中,一般还应该在主调函数中对被调用的函数做声明。 如果被调用的函数定义出现在主调函数之前可以不必声明。 如果已在所有函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必多所调用的函数在做声明
31 6