iOS开发-简单的循环结构分析

2025真实面试试题分析-iOS客户端开发 iOS客户端开发工程师面试重点涵盖7大核心领域,UI开发(25.4%)、内存管理(19.5%)和多线程(15.3%)占比超60%。高频考点包括:5星级的交互实现与数据存储(如图片按钮旋转)、智能指针原理;4星级的线程同步、网络协议选择;3星级的B+树特性、设计模式实现。面试需重点掌握CoreAnimation动画流程、ARC机制、GCD队列等核心技术,同时准备游戏场景技术和性能优化案例。手撕代码重点关注数组遍历删除和B+树查询等算法问题。差异化准备跨平台开发方案和业务场景解决方案更能体现竞争力。 阅读详情

1、while循环

  while (循环条件) {
        循环体;

  }

1         // 1.定义循环变量
2         int time = 1;
3         // 2.循环条件
4         while (time <= 3) {
5             // 3.循环体
6             printf("%d\n",time);
7             // 4.循环增量
8             time++;
9         }

  练习:打印1-100之间所有的数

1         int number = 1;
2         while (number <= 100) {
3             printf("%-4d", number);
4             number++;
5         }

2、do...while循环

    do {
        循环体
    } while (循环条件);

1         int a = 1;
2         do {
3             a++;
4         } while (a > 10);
5         printf("a = %d\n", a);

3、for循环

  for(定义循环变量 ; 循环条件;循环增量){...}

  练习:用for循环打印出1~100之间既不是7的倍数并且也不包含7的数。

1         for (int i = 1; i <= 100; i++) {
2             if (i % 7 != 0 && i % 10 != 7 && i / 10 != 7) {
3                 printf("%-4d", i);
4             }
5         }

4、循环嵌套

  打印:

  1
  1 2
  1 2 3
  1 2 3 4
  1 2 3 4 5

1         // 控制行数
2         for (int i = 1; i <= 5; i++) {
3             // 每一行要打印的内容
4             for (int j = 1; j <= i; j++) {
5                 printf("%d ", j);
6             }
7             printf("\n");
8         }

  打印乘法口诀表

1     for (int i = 1; i <= 9; i++) { 
2         // 控制打印的方格
3         for (int j = 1; j <= i; j++) {  
4             printf("%dx%d=%d ", j, i, j*i);
5         }
6         printf("\n");
7     }

5、for循环和while的区别

   for:循环通常用于知道循环次数的情况下使用(常用)
     while:不明确循环次数,知道循环结束的标识

6、break,continue

  break:在switch...case中,结束当前的case分支
    在循环中,遇到break,break后面的语句不再执行并结束整个循环
  continue:在循环中遇到continue,后面的语句不再执行并结束本次循环

  练习:打印1-20之间所有的数,如果是7,不打印,如果是17,17和后面的数不再打印

 1     int a = 0;
 2     while (a < 20) {
 3         a++;
 4         if (a == 7) {
 5             continue;
 6         }
 7         if (a == 17) {
 8             break;
 9         }
10         printf("%d ", a);
11     }

7、随机数

  arc4random()

  原理: 余数 < 除数

  取对应区间随机数公式

    [0, n] arc4random() % (n + 1)
    [a, b] arc4random() % (b - a + 1)+a

  练习:用while打印10个随机数(范围为10~30),求最大值和最小值。

 1     int number = 1;
 2     int max = 0;
 3     int min = 30;
 4     while (number <= 10) {
 5         // 打印随机数(范围为10~30)
 6         int random = arc4random() % 21 + 10;
 7         printf("%4d", random);
 8         if (max < random) {
 9             max = random;
10         }
11         if (min > random) {
12             min = random;
13         }
14 
15         number++;
16     }
17     printf("max = %d\n", max);
18     printf("min = %d\n", min);
iOS开发实现ScrollView自动循环滚动功能 在现代移动应用界面设计中,ScrollView自动循环滚动已成为提升用户体验的重要交互形式之一。它广泛应用于首页轮播图、广告展示、图文导航等场景,通过自动滑动与无缝循环的方式,增强界面的动态感与信息传达效率。实现该功能的核心在于结合UIScrollView的内容布局机制与定时控制逻辑,使得视图能够在有限的屏幕空间内持续、流畅地展示多个内容项。本章将为读者建立对该机制的基本认知,明确其设计目标与实现思路,为后续深入掌握布局、交互与优化打下坚实基础。技巧名称描述。 阅读详情

相关推荐

深入理解iOS循环定时器的实现与管理

NSTimer是Foundation框架中用于实现定时功能的一个类。它可以安排一个定时器事件在未来某个时间点触发,并重复触发。NSTimer类是Objective-C语言中用于定时器的实现方式之一,它允许开发者设定一个时间间隔,在这个时间间隔后执行一个指定的方法。NSTimer提供了多种创建定时器的方式,包括使用时间间隔和使用日期对象触发。是GCD中用于创建同步或异步任务的类型,可以用来实现包括定时器在内的多种类型的事件源。该类型在底层使用高效的数据结构,利用操作系统的调度器来处理任务。

weixin_28872035的博客 939

黄迪明3.9

/*编写一个程序求满足以下公式的变量 k 的最大值。 2^k<=m 其中, m 是程序输入的一个正整数。*/#include<stdio.h> #include<stdlib.h>int main() { unsigned m; int k = 0, temp = 1; printf("Please input a number:"); scanf("%d"

super_coder的专栏 617

K-means算法代码实现(python)

K-means算法代码实现以及解决质心选择问题 计算距离 距离通常使用欧几里得距离来衡量 def euclDistance(vector1, vector2): return np.sqrt(sum((vector2 - vector1) ** 2)) 初始化质心 def initCentroids(data, k): numSamples, dim = data.shape ...

江南小帅瓜的博客 1万+

c++上机作业测试体重是否标准并输出相关提示

一问题及代码 /* * 文件名称: * 作 者: * 完成日期: 年 月 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述: * 问题描述: * 程序输出: * 问题分析: * 算法设计: */ #include #include using namespace std; int main() { int

hezhicheng1314的博客 845

用Java实现对接豆包ai火山引擎详细版简单明了ai对话

第二部分代码实现。

m0_72637700的博客 8607

网络可视媒体的智能计算-胡事民

本文为胡事民教授在山大做报告的笔记,现场见下图: 可视媒体是承载视觉信息的媒体类型,如图像、视频等,它具有网络化、海量和无序涌现等特征。 可视媒体计算的研究意义 可视媒体作为一种信息承载的介质,是用来表达语义信息的。那么就有一种介质与信息之间相互转化的问题。转化方向正反两种,举个栗子说明一下: 1. 可视媒体→→\rightarrow语义信息:比如看到画面,理解其中发生的事件、各主题之...

gdymind的博客 2450

输入一个性别、身高和体重值,输出其形体状态(太轻、标准、太重)。【我们假定在±2%范围内都是标准的,小于的提示太轻,大于的提示太重。】体重(kg)身高(cm)

Andanc的博客 2789

一文了解英伟达(NVIDIA)所有显卡芯片

英伟达(NVIDIA)的产品线庞杂繁复,从面向游戏玩家的GeForce RTX系列,到数据中心的H100、B200,再到Jetson、DRIVE等边缘智能平台,一般人很难以厘清其全貌。这篇文章将用通俗而专业的语言,一文打通英伟达显卡芯片体系,让你彻底读懂这个GPU帝国是如何运转的。

bjdx_001的博客 6346

iOS学习03C语言循环结构

1、while循环   while (循环条件) { 循环体;   } 1 // 1.定义循环变量 2 int time = 1; 3 // 2.循环条件 4 while (time <= 3) { 5 // 3.循环体 6 printf("%d\...

weixin_33737774的博客 126

基于Pixi.js的Live2D看板娘离线加载实战指南

本文详细介绍了基于Pixi.js实现Live2D看板娘离线加载的完整方案,涵盖环境搭建、模型加载、交互功能实现及常见问题解决。通过Pixi.js的硬件加速优势,开发者可在Web和Electron项目中无缝集成离线运行的Live2D模型,提升用户体验并避免网络依赖问题。

weixin_29001423的博客 343

UE4逆向实战:如何快速定位UWorld和GName的5种实用技巧(含版本差异分析)

本文详细介绍了UE4逆向工程中快速定位UWorld和GName的5种实用技巧,包括特征码定位法、动态行为分析法、静态符号分析法等,并针对不同版本差异提供了适配方案。特别强调了UWorld作为游戏世界核心容器和GName作为名称管理系统的重要性,帮助开发者高效进行游戏逆向分析。

star的博客 895

黄迪明9.2

/*编写一个将字符串"Data Structure”, “Operating System”, “Computer Graphics”,“Software Engineering”’写入文件中去的程序。*/#include<stdio.h> #include<stdlib.h>int main() { char a[30] = "Data Structure"; char b[

super_coder的专栏 264

Python量化- Black-Litterman 模型

​​​​​​​Black-Litterman 模型由 Fischer Black 和 Robert Litterman 于 1992 年开发,采用贝叶斯方法进行资产配置。该模型通过结合先前的回报估计(可以从多个来源得出)并结合投资者对未来回报的独特预期来优化分配权重。

探索人工智能领域 1030

ios开发 循环引用 检测_iOS 中的循环引用

此处记录的都是ARC情况下~~~循环引用是什么?当两个不同的对象各有一个强引用指向对方,那么循环引用便产生了,当然多一个对象产生的环也是一样的。两个对象通过彼此之间的强引用构成保留环也可以直接从引用计数说明,此时如果互相引用的时候,双方的引用计数都是+1的,导致任何时候引用计数都不为0,始终无法释放,无法释放他们的内存,即使已经没有变量持有他们。循环引用带来什么危害循环引用对 app 有潜在的危害...

weixin_39714307的博客 452

Allegro如何去掉PCB内层未使用的过孔孔环?

在用Allegro进行PCB设计过程中,遇到铺铜铜箔被焊盘大量割断,导致铺铜不完整,这样就会导致铺铜过电流太小,影响板的性能,严重的会导致板工作不稳定,甚至不工作。解决办法:是去掉内层未使用的过孔孔环,增大过铜箔面积。

bhxc809751502的博客 2571

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

iOS 循环引用

转载自: https://www.jianshu.com/p/aa8d3e3ea4f2 介绍: 在Objective-C的开发中循环引用(retain cycle)是指两个(或多个)对象之间产生了互相强引用而导致这些对象因为引用计数(reference count)始终大于等于1而不会释放,最后导致内存泄漏(memory leak)的状况,可以用下图描述。 情况一:delegate delegate 是iOS中开发中最常遇到的循环引用,一般在声明delegate的时候都要使用弱引用 weak 或者assig

春风酿酒的博客 737

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

iOS开发逆向之循环选择指针(上)

本文的主要目的是理解汇编中全局变量、常量的存储,以及如何将if、while等汇编代码还原成高级代码 全局变量 在这之前首先需要了解内存的分区,对这块不是特别清晰的,建议看看iOS-底层原理:内存五大区,下面进行一个简单的汇总说明 代码区:存放代码,可读、可执行 栈区:存放参数、局部变量、临时数据,可读写 堆区:开发人员动态申请,大小可变,可读写 全局变量:可读可写 常量:只读 案例分析 首先作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:13

iOS-大鑫 349

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

[iOS] 一次 Block 引起的循环引用的探索

本文主要涉及到了: (1) 使用 Block 添加通知时可能造成的循环引用问题; (2) 借助 dealloc 函数、 Leaks 工具和 Debug Memory Graph 工具分析循环引用的原因; (3) 页面 pop 后UINavigationController仍然保留页面引用的问题

wu_gq的博客 876

[iOS开发]NSTimer与循环引用的理解

文章目录问题引入循环引用简单理解的循环引用Block中的循环引用强弱共舞NSTimer创建NSTimer销毁NSTimerinvalidate与fireinvalidate与 = nil面试题如何解决NSTimer强持有的问题?中间的代理对象使用NSObject类实现消息转发使用NSProxy类实现消息转发改变timer引用在合适的地方调用invalidate方法 NSTimer在runloop中我们有接触过,当时只是简单了解,NSTimer其实是很重要的一部分知识,我们需要好好了解一下这部分和循环引用部分

复杂化的博客 686

ios开发 循环引用 检测_ios - 关于self循环引用的一个疑问

问 题1、self循环引用, [weakSelf actionTest]调用另一个方法时,方法里又有self,会不会又是强引用,导致循环引用?2、(void)blockTask{__block typeof(self) weakSelf = self;self.blockTager = ^(){// 调用另一个方法[weakSelf actionTest];}}(void)actionTest{/...

weixin_39532699的博客 392

循环结构:while循环

IOS学习第6天循环结构同1件事,反复不停的去做,这样的情况我们就叫做循环 分类while循环结构do-while循环结构for循环结构 特点 1.同一件事2.反复不停的去做,中间不能停3.循环也有结束的时刻 优点 1.代码少,看起来简洁2.后期的维护和修改非常方便 注意点while循环1.while后面的条件表达式可以是任意的表达式,0为假,非0为真2.永真与永假while(1)while(0)3

MA7777777__的博客 1349

ios开发 循环引用 检测_iOS循环引用问题-阿里云开发者社区

今天面试问道了循环引用,所以就看了看,原来只是知道使用了Block容易造成循环引用。今天就来简单的介绍一些循环引用。先来简单介绍一下什么是循环引用?循环引用可以简单的理解成:A对象引用了B对象,B对象又引用了A对象。两者相互保持对方的一个引用。导致任何时候计数都不为0,最终两者都无法释放。产生循环引用的方式:1、NSTimer比如说我在一个类中声明了一个NSTimer计时器类。而在NSTimer ...

weixin_39531688的博客 242

nstimer循环引用_ios开发中经典循环引用场景?

1、属性传值循环引用如:- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {TabelViewCell *cell = ...cell.tableView = tableView;return cell;}@interface TableVie...

weixin_39633455的博客 143

「iOS」————Block的循环引用

本文分析了Block循环引用的原因和解决方案。发生循环引用的原因大多是使用self时强持有了Block,而Block又强持有对象。我们来看看如何解决

2301_80253909的博客 790

FBMemoryProfiler 开源项目教程:iOS内存分析与循环引用检测终极指南

FBMemoryProfiler 是一款由 Facebook 开源的 iOS 内存分析工具,专为开发者打造,可帮助实时监控应用内存使用情况并精准检测循环引用问题。作为一款轻量级且功能强大的性能分析工具,它能有效提升 iOS 应用的稳定性和性能表现,是移动开发工程师不可或缺的调试利器。 ## 📱 核心功能解析:为什么选择 FBMemoryProfiler? FBMemoryProfiler 提

gitblog_00628的博客 414
上一篇: iOS开发-继承特征详解
下一篇: 关于安装wordpress出现500 Internal Server Error的解决方案
Kryptons
博客等级 码龄10年 2粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值