首页 > 其他分享 >关于if语句的几点思考!!

关于if语句的几点思考!!

时间:2022-12-31 13:33:14浏览次数:32  
标签:语句 count arr int mid 思考 answer 几点 left

这是关于在数组中寻找某个数(answer)的下标的程序的两种写法,结果却截然不同,由此引发了对if语句的进一步思考。


写法一:

#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
int mid=0;
int answer = 7;
int count = 1;
while (left <= right)
{
int mid = (left + right) / 2;

if(arr[mid]>answer)
{
right = mid - 1;
count++;
}
else if (arr[mid] < answer)
{
left = mid + 1;
count++;
}
else
{
printf("找到了在下标%d", mid);
break;
}


}

printf("\n找了%d次", count);

return 0;
}

输出结果:​

关于if语句的几点思考!!_if语句

写法二:

#include<stdio.h>
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int right = sizeof(arr) / sizeof(arr[0])-1;
int mid=0;
int answer = 7;
int count = 1;
while (left <= right)
{
int mid = (left + right) / 2;

if(arr[mid]>answer)
{
right = mid - 1;
count++;
}
if (arr[mid] < answer)
{
left = mid + 1;
count++;
}
else
{
printf("找到了在下标%d", mid);

break;
}


}

printf("\n找了%d次", count);

输出结果:

关于if语句的几点思考!!_if语句_02

总结:两次写法类似,只是在第十九行if与if else不同,但是输出结果却不同,原因是我忽略了:

if...              if....          

           和                   的区别,

if...              else if...

 第一种是分别判断按照顺序执行,第二种是先判断第一句若成立就不进行下一步判断,若不成立就进行下一步判断

标签:语句,count,arr,int,mid,思考,answer,几点,left
From: https://blog.51cto.com/u_15923331/5982097

相关文章

  • 报错注入语句
    常用的三个报错注入语句:floor报错and(select1from(selectcount(*),concat(user(),floor(rand(0)*2))xfrominformation_schema.tablesgroupbyx)a)--+unionse......
  • 有关供应链的思考
    作者:朱金灿​​为什么大多数人学不会人工智能编程?>>>​​  供应链这词看着挺玄乎,其实没那么神秘。我们每个人都是消费者,有消费必然有供给,这样就构成了最简单的一个......
  • 我希望来年,更多是靠关系和模式挣钱——2022年我的总结与思考
      我记得是2017年开始在博客园写博客,那年我儿子出生,并与当年年底写了17年的年度总结。   n年前,我没钱但年轻,我怕n年后我老时,还是一无所成——2017我的收获和反思......
  • 项目--视频播放--【4】开发过程的思考
      1、开发遇到的问题  1.1、参与开发这个项目的人员只有一个。  1.2、开发时间都是在下班后、周末及节假日,时间比较少。  1.3、缺少产品文档、UI原型、......
  • 关于JS中深拷贝和浅拷贝的思考
    概要:对Js数据的深拷贝和浅拷贝做一个总结,加深记忆Js数据类型由基本数据类型和引用数据类型组成,简单数据类型包括(Number、String、Boolean、Undefined、Null);引用数据类型......
  • 从webApi调用存储过程引发的一连串思考
    业务场景是这样的,要编写一个webapi程序,去调用存储过程。项目使用EFcore,我右键点击EFcore工具,再选择反向工程,自动生成了调用存储过程的方法,如果存储过程有返回值,还会自动生......
  • Java开发学习(四十九)----MyBatisPlus更新语句之乐观锁
    1、概念在讲解乐观锁之前,我们还是先来分析下问题:业务并发现象带来的问题:秒杀假如有100个商品或者票在出售,为了能保证每个商品或者票只能被一个人购买,如何保证不会出......
  • 像工程师一样思考
    像工程师一样思考要想成为一名工程师,最重要的一点就是能够像工程师一样处理问题,面对未知或已知的事件能够像工程师一样思考。工程师和小白最大的区别是什么?知识吗?工程师......
  • 对云渲染服务器的一些思考
     自建云渲染服务器 1.搭建腾讯应用云渲染服务器2.打包游戏客户端发布到云渲染服务器3.体验云渲染方式:3.1访问web网页,该网页通过WebRTC连接云渲染服务器,点......
  • 第二章《Java程序世界初探》第10节:多重if...else语句
    ​程序员希望实现这样的功能:由用户从控制台输入一个考试分数,如果这个分数在90或90以上输出“优”,如果分数在70到89输出“良”,如果分数在60到69输出“平”,如果分数在60以......