2024年最新12个View绘制流程高频面试题,分支语句和循环语句_循环体中的语句不可以是分支语句,2024年最新vivo研发面试

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

2. 分支语句(选择结构)

选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。

2.1 if语句

if语句的一般语法结构形式如下两种:

//第一种
if(表达式)
  语句;
//第二种
if(表达式)
   语句2;
else
   语句3;
//第三种,多分支    
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

讲解:如果满足表达式中的条件,行该if条件下的语句,不满足则执行else下的语句。

if语句使用示例:

#include <stdio.h>
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {
        printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

注意: 如果表达式的结果为真,则语句执行。

在C语言中,0表示假,非0表示真

如果条件成立,则执行该条件下的多条语句,行使代码块中的功能。

#include <stdio.h>
int main()
{
    if(表达式)
   {
        语句1;
   }
    else
   {
        语句2;
   }
    return 0;
}

注意:这里的一对 { } 就是一个代码块。

说明:

(1)整个if语句可以写在多行上,也可以写在一行上,如:

if(x>0) y=0;else y=-1;

但是,为了程序清晰,提倡写成锯齿形式。

(2)if语句无论写在几行上,都是一个整体。不要误认为if部分是一个语句,else部分是另一个语句。不要一看到分号,就以为是if语句结束了。在系统对if语句编译时,若发现内嵌语句(出现分号),还要检查其后有无else,如果无else,就认为整个if语句结束,如果有else,则把else子句作为if语句的一部分。

注意else子句不能作为语句单独使用,必须是if语句的一部分与if配对使用。

2.1.1 悬空else

如下代码,缺少{}使代码的逻辑模糊,不能清楚展现;导致代码整体的风格不好。

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 3;
    if(a == 1)
        if(b == 3)
            printf("Hei Tuo\n");//问题1
    else//问题2
        printf("hei tuo\n");
    return 0;
}

正确引用{},改正:

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 3;
    if(a == 1)
   {
        if(b == 3)
       {
            printf("Hei Tuo\n");
       }
   }
    else
   {
         printf("hei tuo\n");
   }      
    return 0;
}

注意else的匹配:else是和它离的最近的if进行匹配

2.1.2 if书写形式的对比

试看如下举例四个代码:

//代码1
if (condition) {
    return x;
}
return y;
//代码2
if(condition)
{
    return x;
}
else
{
    return y;
}
//代码3
int num = 1;
if(num == 5)
{
    printf("hehe\n");
}
//代码4
int num = 1;
if(5 == num)
{
    printf("hehe\n");
}

不难看出来,代码2和代码4更好,表现的逻辑更加清晰,整体更合理,不容易出错。

2.2 switch语句

if语句只有两个分支可供选择,而实际问题中出常常需要用到多分支的选择。C语言提供switch语句直接出了多分支选择。

switch语句的作用是根据表达式的值,使流程跳转到不同的语句。switch语句语法结构形式如下:

switch(整型表达式)
{
    语句项;
}

语句项:是表示一些case语句

case 整形常量表达式:
    语句;

2.2.1 在switch语句中的 break

在switch语句中,是不能直接实现分支的,必须要搭配break使用才能实现真正的分支。

在C语言的 switch(开关语句)中, break可使程序跳出switch而执行switch以后的语句;如果没有break语句,则会从满足条件的地方(即与switch(表达式))括号中表达式匹配的case)开始执行,直到switch结构结束。

如下要满足条件:

1. 输入1-5输出的是“weekday”;

2. 输入6-7输出“weekend”。

#include <stdio.h>
//switch代码演示
int main()
{
    int day = 0;
    switch(day)
   {
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
   }
    return 0;
}

由此可知break实际效果是把语句列表划分为不同的部分。

注意:在最后一个 case 语句的后面加上一条 break语句。(这样写是可以避免出现在以前的最后 一个 case 语句后面忘了添加 break语句)。

2.2.2 default子句

当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。

如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢? 你可以在语句列表中增加一条default子句,把下面的标签 :

default:
       break;

不要忘记最后的default分支。即使程序真的不需要default处理,也应该保留语句: default : break

举例switch:

#include <stdio.h>
int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)
		{//switch允许嵌套使用
		case 1:
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	default:
		break;
	}
	printf("m = %d, n = %d\n", m, n);
	return 0;
}

注意:

(1)上面switch一般形式中括号内的“表达式”,其值的类型应为整数类型(包括字符型);

(2)每个case常量必须互不相同;否则就会出现互相矛盾的现象(对switch表达式的同一个值,有两种或多种执行方案);

(3)case和常量表达式之间要有空格;

(4)case和default出现可以在任何位置,其先后次序不影响执行结果,但习惯上将default放在switch-case结构的底部;

(5)case提供了执行某一语句序列的入口,起着标号的作用;多个case可以执行同一语句序列;

case 'a':
case 'b':
case 'c':priintf(">60\n");
break;

(6)每个case语句的结尾不要忘了加break,否则将导致多个分支重叠。

(7)一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构,即终止switch语句的执行。

3. 循环语句 while,for,do…while()

循环结构是指在程序中需要反复执行某个功能而设置的一种c结构。它由循环体中程序的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。

3.1 while循环

针对同一件事情我们需要完成很多次的情况。 C语言中给我们引入了:while语句,当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。

while语句一般形式如下:

//while 语法结构
while(表达式)
 循环语句;

while使用举例:

#include<stdio.h>
int main()
{
int a= 0;
while(a<10)
{
a++;//自加
if(a>5)//不等while退出循环,直接判断循环
{
break;//跳出循环
}
}
}
3.1.1 while语句中的break和continue

break介绍

break在while循环中的作用是:在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以while中的break是用于永久终止循环的。

break使用示例:

#include <stdio.h>
int main()
{
 int i = 1;
 while(i<=10)
 {
 if(i == 5)
 break;
 printf("%d ", i);
 i = i++;
 }
 return 0;
}

这里代码最后会输出的结果是:1 2 3 4。因为当i==5时,遇到break就跳出了循环并且终止。

continue介绍

continue在while循环中的作用是: continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接 跳转到while语句的判断部分。进行下一次循环的入口判断。

continue语句和break语句的区别是:

continue语句只结束本次循环,而不终止整个循环的执行。而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

注意:

(1)break可以在if-else中使用直接跳出当前循环;

(2)在多层循环中, 一个break语句只向外跳一层;

(3)continue语句的作用是跳过循环体中剩余的语句并到循环末尾而强行执行下一次循环。

3.2 for循环

初始化语句只在循环开始前执行一次,每次执行循环体时要先判断是否符合条件,如果循环条件为true,则执行循环体,再执行迭代语句。所以对于for循环,循环条件总比循环体多执行一次。

3.2.1 语法
for(表达式1;表达式2;表达式3)
 循环语句;

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-tfrnjAQ4-1713794673625)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值