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

  • 相关阅读:
    C#反射(一)
    找回密码
    常用的webservice接口 .
    C# 反射应用技术
    Delphi简介
    C#程序思想简介
    如何跨线程访问window控件
    C#如何判断某个文件夹是否为共享,访问权限为只读
    Delphi基础
    Web Service接口
  • 原文地址:https://www.cnblogs.com/liuguan/p/4957626.html
Copyright © 2011-2022 走看看