开关语句、循环语句、goto

复习:

1、数据类型:signed char         1   %hhd    -128~127signed short        2   %hd     -32768~32767signed int          4   %d      正负20亿signed long         4   %ldsigned long long    8   %lld    9天开头的19位数unsigned char       1   %hhu    0~255unsigned short      2   %hu     0~65535unsigned int        4   %u      0~40亿unsigned long       4   %lu     unsigned long long  8   %llu    1开头的20位数float               4   %fdouble              8   %lflong double         12  %LF
2、变量取名规则1、由数字 字母 下划线组成2、不能以数字开头3、不能与关键字重名4、见名知义
3、变量的输入输出printf 提示信息+占位符+变量名scanf 占位符+变量地址%nd %0nd %-nd %n.mf
3、运算符/ % 除数不能0,否则会产生浮点数例外,核心已转储错误== 变量尽量放在右边++/-- 一行代码中不要过多使用&& || 具有短路特性A?B:C 不能出现流程控制语句
4、类型转换自动类型转换:不同类型的数据会先转换成相同类型的数据才能进行运算。转换规则(以不丢失数据为基础,适当牺牲一些空间):1、字节少向字节多转2、相同字节数有符向无符转3、整型向浮点型转强制类型转换:(目标类型)数据 , 可能会造成数据丢失,慎重使用。

一、开关语句

switch

switch(n)//运算结果必须是整型
{case val: // val必须是整常量 ,如果val等于n,则打开执行开关... break; // 关闭执行开关注意:如果每个cast后都有break,就形成了分支结构。default:// 如果所有的case都没有匹配成功则打开执行开关
}
case a ... b: 判断一个范围,此为GNU编译器独有的语法,不建议使用。

练习1:输入一个月份,判断季节。
123 春天
456 夏天
789 秋天
10 11 12 冬天
other 输入的月份有误

#include <stdio.h>int main()
{unsigned int month = 0;printf("请输入一个月份:");scanf("%u",&month);switch(month){case 1 ... 3: printf("春天"); break;case 4 ... 6: printf("夏天"); break;case 7 ... 9: printf("秋天"); break;case 10 ... 12: printf("冬天"); break;default: printf("输入的月份有误!\n"); break;}
}

练习2:输入一个月份,判断该月有多少天,忽略闰年问题。

#include <stdio.h>
#include <stdint.h>int main(int argc,const char* argv[])
{uint8_t month = 0;printf("请输入一个月份:");scanf("%hhu",&month);if(month < 1 || month > 12){printf("输入的月份有误!\n");return 0;}switch(month){case 2: printf("28天\n"); break;case 4: case 6:case 9:case 11: printf("30天\n"); break;default: printf("31天\n"); break;}
}
for循环语句:
循环就是让一段代码反复执行,达到你想要的结果。
for一种比较灵活且危险(与其它循环相比)的一种循环。
一般使用一个变量来引导它的运行,这个变量就叫作循环变量。
for([1];[2];[3])
{[4];
}1、给循环变量赋初值,C99标准才可以定义循环变量。此处定义的循环变量,只能for循环内使用。
2、判断循环变量的是否到达边界。
4、被反复执行的代码,也叫循环体。
3、改变循环变量,防止变成死循环,一般对循环变量自加或自减。大括号问题:1、建议上下对齐2、循环体如果只有一行代码,大括号可以省略但不利于扩展,一般商业代码要求大括号不能省略。for循环的多种写法:
for(;;)
{// 死循环
}int i = 0;
for(;i<10; i++)
{}for(int i=0; i<10;)
{printf("----");i++;
}
while语句:
while(条件) // 当条件为真执行循环体,为假时结束
{// 循环体
}while循环相当于for循环的精简版本。
for循环负责解决明确知道循环次数的问题。
while负责解决只知道结束条件而不确定循环次数的问题。
do while语句:
do{循环体
}while(条件); 
先执行循环体,再判断循环条件,该循环至少执行一次。
循环嵌套:
循环语句中包含循环语句。
外层循环执行一次,内存循环执行遍。

练习3:计算出所有的水仙花数。

#include <stdio.h>int main(int argc,const char* argv[])
{for(int i=100; i<1000; i++){int g = i%10;int s = i/10%10;int b = i/100;if(g*g*g+s*s*s+b*b*b == i){printf("%d\n",i);}}
}

练习4:输入一个正整数,判断是否是素数。

#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0;printf("请输入一个整数:");scanf("%d",&num);if(num < 2){printf("输入的数据有误!\n");return 0;}int cnt = 0;for(int i=1; i<=num; i++){if(0 == num%i){cnt++;}}if(2 == cnt){printf("是素数\n");}else{printf("不是素数\n");}
}
#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0;printf("请输入一个整数:");scanf("%d",&num);if(num < 2){printf("输入的数据有误!\n");return 0;}int i = 2;for(; i<num; i++){if(0 == num%i){printf("不是素数\n");return 0;}}printf("是素数!\n");}

练习5:输入一个整数,分解显示。
-1234
-1 2 3 4

#include <stdio.h>
#include <math.h>
#include <stdlib.h>int main(int argc,const char* argv[])
{int num = 0;printf("请输入一个整数:");scanf("%d",&num);if(num < 0 ){printf("-");num = abs(num);}int copy = num , cnt = 0;while(copy){copy /= 10;cnt++;}for(int i=cnt; i>0; i--){printf("%.0lf ",num/pow(10,i-1));num = num % (int)pow(10,i-1);}
}

练习6:输入一个正整数,判断是否是回文数。
1234
4321

#include <stdio.h>int main(int argc,const char* argv[])
{int num = 0 , new = 0;printf("请输入一个正整数:");scanf("%d",&num);if(num < 0){printf("输入的数据有误\n");return 0;}int copy = num;while(copy){new = (new*10)+(copy%10);copy /= 10;}printf("%d %d\n",num,new);if(num == new){printf("是回文数\n");}else{printf("不是回文数\n");}
}
跳转语句:
goto 可以在函数内任意跳转。
它可能会破坏已经设计好的分支或循环语句,因此绝大多数公司禁止使用。
但它在驱动编程时特别适合处理异常。标签: // 位置
goto 标签;

练习7:不使用循环计算前N项的斐波那切数列。
1 1 2 3 5 8 13 21 …

#include <stdio.h>int main(int argc,const char* argv[])
{// 1 0 1 1 2 3int n = 0;printf("输入n的值:");scanf("%d",&n);int f1 = 1 , f2 = 0 , t = 0;loop:t = f1 + f2;f1 = f2;f2 = t;printf("%d ",t);if(--n) goto loop;
}

在这里插入图片描述


该系列持续更新
希望喜欢的小伙伴可以一键三连~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成功男士的健康心理特征

自信&#xff1a;他们普遍都有很强的自信心&#xff0c;有时有咄咄逼人的感觉。 急迫感&#xff1a;他们通常很急地想见到事物的成果&#xff0c;因此会给别人带来许多的压力。他们信仰“时间就是金钱”&#xff0c;不喜欢也不会把宝贵的时间浪费在琐碎的无聊事情上。 脚踏实…

DBlink的创建与删除

创建方式一&#xff1a; create [public] database link link名称 connect to 对方数据库用户identified by 对方数据库用户密码 using 对方数据库ip:端口/服务名; 创建方式二&#xff1a; create [public] database link link名称 connect to 对方数据库用户identified by 对…

kong 启动报错 could not retrieve server_version: timeout

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错&#xff1a; nginx: [error] init_by_lua error: /usr/local/share/lua/5.1/kong/init.lua:169: [postgres error] could not ret…

2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)

1-STM32物联网开发WIFI(ESP8266)GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电脑开个热点,然后让Wi-Fi和APP连接咱电脑的热点,这样就能监听数据了 电脑开个热点 手机APP连接这个热点…

数组越界的后果

数组&#xff1a; 什么是数组&#xff1a;变量的组合&#xff0c;是一种批量定义变量的方式。 定义&#xff1a;类型 数组名[数量];int arr[5]; 使用&#xff1a;数组名[下标];下标&#xff1a;从零开始&#xff0c;范围&#xff1a;0~数量-1。 遍历&#xff1a;与for循环配合…

职场心理:12个建议或许能改变你的一生(图)

心理引言&#xff1a;如何更好实现自我的职业目标&#xff1f;听起来很简单&#xff0c;回答也很简短&#xff0c;就是你必须清楚你最终想要实现什么&#xff1f;只要你这样做&#xff0c;你就已经开始从看的见和看不见的两条路径来实现你的目标。职场是一种特殊的环境&#xf…

python—包

1.模块 可以增加代码的重复利用的方式 避免命名冲突 如何定义模块 模块就是一个普通文件&#xff0c;所以任何代码可以直接书写规范 函数&#xff08;单一的功能&#xff09;类&#xff08;相似功能的组合&#xff0c;或者类似业务模块&#xff09;测试代码 如何使用模块 模块…

Docker Installation : Docker 中安装并启动 Kong

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 Details about how to use Kong in Docker can be found on the DockerHub repository hosting the image: kong. We also have a Docke…

tomcat是否有必要配置环境变量(摘)

之前发表了一篇关于如何安装和配置Tomcat的文章&#xff0c;而最近在开发项目的时候总是报错。后来被公司的大神问了一句&#xff1a;是谁告诉你Tomcat是需要配置环境变量的&#xff1f; 作为新手的我瞬间整个人都不好了&#xff01;于是偷偷百度了一下&#xff0c;终于找到了关…

走迷宫+推箱子

两个小游戏的大致逻辑 走迷宫: 1、定义二维字符数组作为迷宫 2、定义变量记录老鼠的位置 3、获取游戏开始时间 3、进入循环 1、清理屏幕&#xff0c;使用system调用系统命令。 2、显示迷宫(遍历二维字符数组) 3、检查是否到达出口 获取游戏结束时间&#xff0c;计算出走出迷宫用…

Facebook开源ptr:在Python环境中并行运行单元测试

Facebook开源了一个名为Python Test Runner&#xff08;ptr&#xff09;的新项目&#xff0c;允许开发人员运行Python单元测试套件。ptr和现有测试运行器之间的主要区别在于ptr通过爬取存储库查找一定的Python项目&#xff0c;这些项目带有的单元测试在安装文件中已经定义过。 …

小窍门解决大问题(组图)

1.洗头时&#xff0c;在水中放少许盐&#xff0c;也可以预防脱发。 2.用醋洗头&#xff0c;可以令头发飘顺&#xff0c;容易打理而且兼有去头皮屑的功效。特别适合烫染后的头发。 3.刷牙时在牙膏上加上一点小苏打&#xff0c;刷三次后牙齿洁白如玉&#xff0c;牙锈自然脱落…

解决报错: Connecting to Kong on http ... Could not reach Kong on http://xxx.xxx.xxx.xxx:8001

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. Docker 中安装并启动好网关 kong 后&#xff0c;想要安装 kong 的图形化界面 kong-dashboard &#xff0c;运行命令&#xff1a; do…

生成迷宫/C++

小时候&#xff0c;都喜欢玩迷宫&#xff0c;现在的电脑上还可以玩3D类迷宫。 那么每次开始游戏时&#xff0c;迷宫里密密麻麻的道路是怎么生成的呢&#xff1f; 在代码里面&#xff0c;我们把它们想象成一堆像素小格子&#xff0c;当两个格子连在一起&#xff0c;就像一堵墙&a…

Spring boot 配置tomcat后 控制台不打印SQL日志

在pom.xml中配置tomcat启动处加上&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</…

人生有五不:不等、不管、不看、不做、不给

一、我不等 朋友什么都等&#xff1a;等退休、等一千万存款、等孩子长大、等房贷缴清……最后等到了告别式。 他有感而发告诉我们这群探病友人&#xff0c;人都会走&#xff0c;可是他走得有些遗憾&#xff0c;有点不甘&#xff0c;非常后悔&#xff0c;除了工作之外&#xff0…

selenium操作浏览器的前进和后退

前进关键字&#xff1a;driver.forward() 后退关键字&#xff1a;driver.back() 测试对象&#xff1a;1、https://www.baidu.com/ 2、https://www.sogou.com/ 实例代码&#xff1a; 1 # 导入测试所需的库或者模块2 from selenium import webdriver3 import unittest4 import ti…

关于对象不能直接访问私有成员的误区(转)

先贴代码&#xff1a; #includeusing namespace std; class CPoint { public:CPoint(int xx, int yy){x xx;y yy;}CPoint(const CPoint &p){x p.x;y p.y;} private:int x, y; };如果你在想为什么拷贝构造函数的参数可以直接去访问它自己的私有成员的话&#xff0c;你就…

阿里云 ECS服务器 开放 8080 端口 -- 图解

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 由于 kong-dashboard 的端口是映射到 8080 的&#xff0c;服务已启动成功却一直访问不了&#xff0c;最后才想起端口没有开放 ... 1. 登…

.NET高级代码审计(第三课)Fastjson反序列化漏洞

0X00 前言 Java中的Fastjson曾经爆出了多个反序列化漏洞和Bypass版本&#xff0c;而在.Net领域也有一个Fastjson的库&#xff0c;作者官宣这是一个读写Json效率最高的的.Net 组件&#xff0c;使用内置方法JSON.ToJSON可以快速序列化.Net对象。让你轻松实现.Net中所有类型(对象,…