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

  • 相关阅读:
    .NET MVC AjaxHelper
    .NET MVC HtmlHepler
    堆栈存储的区别
    两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
    == 和 equals 的区别是什么
    JDK 和 JRE 有什么区别?
    javaInt占几个字节
    java代码如何在没有安装JDK的Windows下运行
    java跨平台的原因
    MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
  • 原文地址:https://www.cnblogs.com/liuguan/p/4957626.html
Copyright © 2011-2022 走看看