zoukankan      html  css  js  c++  java
  • IOS OC 计算器算法(不考虑优先级)

    个人见解:为还在计算器算法方面迷惑的同学一个数据处理解决方案:定义一个可变数组array,一个可变字符串str,使字符通过[array addObject:str];方法添加到可变数组,每当触发运算符的按键时,利用[array addObject:[[NSMutableString alloc]initWithCapacity:0]];再次为可变数组添加一个字符串,我们获取按键的值通过 [[array lastObject] appendString:myBut.titleLabel.text];方法添加到数组最后一个元素(可变字符串)中,最终可变数组里的每个字符串,除了第一个字符串外,每一个字符串的内容为(字符串首位是运算符,后边全是数字、小数点等),运算符也就是每个字符串的标志,标志着它与何种方式参与运算 下面上段按下等号时的代码if([myBut.titleLabel.text isEqualToString:@"="])
    {
    float sum=[str floatValue];
    for(id obj in array)
    {
    if([obj hasPrefix:@"+"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum + [obj floatValue];
    }
    else if([obj hasPrefix:@"-"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum - [obj floatValue];
    }
    else if([obj hasPrefix:@"*"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum * [obj floatValue];
    }
    else if([obj hasPrefix:@"/"] == YES)//字符串开头字符
    {
    [obj deleteCharactersInRange:NSMakeRange(0, 1)];
    sum = sum / [obj floatValue];
    }
    }
    NSString *str1 = [NSString stringWithFormat:@"%f",sum];
    [array removeAllObjects];
    str = [@"" mutableCopy];
    [array addObject:str];
    myLable.text = str1;
    }在这里用到了解决《触屏手写软件》(例如:涂鸦)的思想,如有雷同纯属巧合,刘冠2015.11.11

  • 相关阅读:
    CLR c++/CLI 如何返回多个返回值
    在php 中显示array数据
    MVC已死,该是用MOVE的时候了
    拿到网规证书后,办北京户口的遭遇。
    利亚德股票限售股解禁表
    32位MSSQL数据库备份如何在64位MSSQL数据库上恢复
    利用DNS实现负载均衡
    购买服务器具体和什么参数有关
    简单来总结一下C++与C#之间的区别
    c# 操作DOS ping命令判断与指定主机是否可以通信
  • 原文地址:https://www.cnblogs.com/liuguan/p/4957626.html
Copyright © 2011-2022 走看看