开关语句、循环语句、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,一经查实,立即删除!

相关文章

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

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

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

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

生成迷宫/C++

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

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…

阿里云 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中所有类型(对象,…

IDEA:No SLF4J providers were found.

如果您是用IDEA 的 maven 写的 将slf4j的导入包 更改 为下列代码 <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.8.0-beta2</version></dependency><dependency><groupId&…

没变强是因为你太舒服(图)

职业生涯很长&#xff0c;对企业而言&#xff0c;它需要你成为一个专才&#xff0c;但从职业发展来看&#xff0c;你需要成为一个全才&#xff0c;方能适应社会的变化。 阻碍你成为全才的不良习惯有很多&#xff0c;有时候我们喜欢趋利避害&#xff0c;拖延症更是让自己定下来…

解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... .

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff1a; Caused by: org.hibernate.DuplicateMappingException: Table [xxx] contains physical column name [comment] …

路由进阶

1>路由组件传参 在组件中使用 $route 会使之与其对应路由形成高度耦合&#xff0c;从而使组件只能在某些特定的 URL 上使用&#xff0c;限制了其灵活性。 解决方法: 1.1若是动态匹配页面&#xff0c;只需要在路由参数中加入props:true即可。 import Home from "/views/…

物联网摄像机通讯_网络调试助手

1&#xff0c;文档目的&#xff1a; 了解对于物联网网关与摄像机协议联动&#xff0c;进行报警抓图&#xff0c;智能检测&#xff0c;OSD叠加&#xff0c;语音播报控制等联动及数据交互。 适用产品&#xff1a;物联网网关 &#xff08;OSD是屏幕显示技术的一种&#xff09; 2…

TOJ 3046: 招商银行网络系统

3046: 招商银行网络系统 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit: 12 Accepted:3 Description 虽然招商银行的网络安全已经做得非常完善&#xff0c;但是天有不测风云&#xff0c;招商银行内部网络系统的一台服务器意外感…

vue打包成app后,背景图片不显示

问题&#xff1a; 在使用npm run build 打包后&#xff0c; 如果在页面中使用img标签引入&#xff0c;打包后的路径是由index.html开始访问的&#xff0c;真正访问的是Static/img/图片名&#xff0c; 是正确的&#xff0c; 但是写在css 中的background: url("../../assets…

Docker 环境下如何 安装 Zookeeper

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 第一步&#xff1a;首先下载Zookeeper的镜像文件&#xff1a; 从仓库中pull 这个zookeeper镜像&#xff1a;docker pull jplock/zookeep…

office教程:教你Excel 怎么样使用信息函数

Excel如何使用信息函数信息函数专门用来返回某些指定单元格或区域的信息&#xff0c;例如获取文件路径、单元格格式信息或操作环境信息等。一&#xff0c;使用CELL函数返回引用单元格信息工作表中的每一个单元格都有对应的单元格格式、位置和内容等信息&#xff0c;在Excel中可…

二叉查找树,红黑树

漫画算法&#xff1a;什么是红黑树&#xff1f;&#xff08;适合初学红黑树小白简单易懂&#xff09; 2018年09月14日 09:55:54 苏杭-Java工程师 阅读数&#xff1a;494———————————— 二叉查找树&#xff08;BST&#xff09;具备什么特性呢&#xff1f; 1.左子树上所…

【算法】快排

快速排序 其利用的思想就是分治思想&#xff0c;最开始先从数组中随机选择一个元素p&#xff08;为什么随机下面解释&#xff09;&#xff0c;然后以这个元素对数组中的元素进行分类&#xff0c;数组左侧都是小于p的元素&#xff0c; 右侧都是大于等于p的元素。这样就让数组分成…

19_05_01校内训练[polygon]

题意 把一个边长为1的正n边形放到一个正m边形中&#xff0c;要求m边形完全覆盖n边形&#xff0c;可以有交点&#xff0c;并且中心重合。求正m边形的最小边长&#xff0c;至少精确到6位。要求logn计算。 思考 先考虑m|n的情况。 我们知道&#xff0c;正m边形的边长与可行区域&am…

[转]numpy中的np.max 与 np.maximum区别

转自&#xff1a;https://blog.csdn.net/lanchunhui/article/details/52700895 转载于:https://www.cnblogs.com/xianhan/p/10609319.html

win10 php7+apache2.4的配置以及遇到的问题及解决

首先进入PHP官网下载php7的版本,我下的是PHP7.1.28,在PHP的下载页面注意划红线和绿线的地方(我画的) 1.画了红线的意思是请使用由apache lounge提供的编译文件,也就是点进蓝色Apache lounge这里下载. 2.画了绿色的线的意思是用Apache的话你必须使用Thread Safe(线程安全)的PHP…