OC學習日記01

於我們推遲幾個星期開課,在閒餘時間我把發下來的C先自己看了一遍。之前大一學的C,過了兩年左右,很多細節的地方都忘了,這次自學梳理可以說把一些細節重新記了起來。而且由於結合了IOS看,也掌握了一些新的小知識。IOS開發是以OC語言爲基礎的,而OC語言又是以C爲基礎的,所以C的基礎是非常重要的。

第一天開課,我也是實在沒想到老師以迅雷不及掩耳的速度講了6章的書,很多沒有基礎的同學可能學不過來,幸好我有自己花時間去看,還勉強跟得上。

總結一下第一天講的內容:

一、講述了OC語言的基本數據類型。

OC語言的數據類型其實主要常用的跟C是差不多的,無非是整型,浮點型,字符型,字符串,數組,值得注意的是OC裏面沒有多維數組,但是也可以多層數組嵌套來實現相應功能。OC除了自定義結構體,裏面還多了一點系統定義好的一些結構體,如NSRange(表示範圍),CGPoint(表示一個點的座標),CGSize(表示寬高),CGRect(前兩者的結合體,因爲確定了中心點座標和兩邊的寬和高,所以可以用於定義一個圖案),其實這些結構體看似多和複雜,我們其實是可以通過按住commond鍵再去用鼠標點擊,看裏面關於這個結構體的說明(這個需要有C語言的基礎纔可以看懂),這樣我們就不會怕記不住這麼多系統自定義的結構體。

以下是代碼


二、講述了OC語言的程序結構

OC的程序結構無非是順序結構、分支條件結構,循環結構,跟C可以說是完全一樣,所以這部分有C基礎的可以說秒懂,開始學的人,我認爲主要還是熟悉下C爲主。


//

//  main.m

//  oc_001

//

//  Created by ibokan2 on 16/7/29.

//  Copyright (c) 2016 RICK_Liu. All rights reserved.

//


#import <Foundation/Foundation.h>

enum Weekdays{

    Monday, //0

    Tuesday,//1

    Wednesday,//2

    Thursday,//3

    Friday,

    Saturday,

    Sunday,

};


typedef enum {

    Red,

    Orange,

    Yellow,

    Green,

    Blue,

    Dian,

    Purple

}Color;


//程序的入口,一個程序有且只有一個main函數

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //輸出語句

        NSLog(@"Hello, World!");

        

        //oc中常用的數據類型,NS

        NSInteger age = 25; // 整型

        NSUInteger age1=25; //無符號整型,大於0的整型

        CGFloat score=3.141592635; //浮點型

        NSRange range;    //表示範圍的結構體

        CGPoint point;   //座標點  CGPoint=x+y;

        CGSize size;   //寬高 CGSize=width+height;

        CGRect rect;   //NSRect=CGPoint+CGSize;

        NSString *string=@"My name is Rick";

        char c=[string characterAtIndex:3];

        NSLog(@"%@,Hello everybody",string);

        NSLog(@"c=%c",c);

        NSLog(@"%.4f",score);

        /*

         常用的格式化表示符

         %d 整形

         %f 浮點型

         %m.nf 浮點數(保留n位小數)

         %c 字符

         */

        //OC裏面,沒有多維數組,只有數組嵌套數組,要求數組裏面每一個都是對象

        NSArray *array=@[@1,@2,@3,@4];

        NSDictionary *dictionary=@{@"name":@"Rick",@"age":@25};

        NSDate *date= [NSDate date];//美國日期

        NSData *data=[NSData data];//二進制數據

        //NSURL 網址

        //NSOperationQueue 線程

        // NSThread  線程

        //dispatch_async(<#dispatch_queue_t queue#>, <#^(void)block#>) 線程

        /*

         1.以字母、下劃線開頭,中間可以包含數字,但是不能以數字開頭;

         2.可以使用美元符號開頭($),但是不建議;

         3.見名知意;

         4.不可以使用系統保留字;

         */

        NSInteger xxx;

        NSInteger value1;

        NSInteger valuevalue;

        NSInteger _value;

       // NSInteger 2value;(x)

       /*

        OC語言中的程序結構

        1.順序結構:從上而下,按代碼逐步執行;

        2.分支結構:根據條件的不同,執行不同的程序語句;if語句 switch case語句

        3.循環結構:在特定的條件下,重複執行代碼若干次

        */

        /*

         

         分支結構    if語句 switch case語句

         if(表達式){

         語句塊

         }

         

         if(表達式){

         語句塊

         }

         else{

         語句塊

         }

         

         if(表達式){

         語句塊

         }

         else if(表達式){

         語句塊

         }

         */

        if (3<4) {

            NSLog(@"條件成立");

        }

        if (/* DISABLES CODE */ (3)>4) {

            NSLog(@"條件成立");

        }

        else {

            NSLog(@"條件不成立");

        }

        NSInteger a=5;

        if(a>4  &&  a<=6){  // ||   &&

        NSLog(@"a[4,6]範圍內");

    }

    else if (a>6&&a<=10){

        NSLog(@"a[6,10]範圍內");

    }

    else{

        NSLog(@"a > 10");

    }

    /*

     switch算法結構

     switch(表達式){

     case 整型常量值1

     語句塊

     break;

     case 整型常量值1

     語句塊

     break;

     case 整型常量值1

     語句塊

     break;

     }

     */

        switch(1){

            case 1:

                NSLog(@"Monday");

                break;

            case 2:

                NSLog(@"Tuesday");

                break;

            case 3:

                NSLog(@"Wednesday");

                break;

            case 4:

                NSLog(@"Thursday");

                break;

            case 5:

                NSLog(@"Friday");

                break;

            case 6:

                NSLog(@"Saturday");

                break;

            case 7:

                NSLog(@"Sunday");

                break;

            default:break;

        }

//        枚舉是一個被命名的整型函數的集合


        enum Weekdays day;

        day = Monday;

        switch (day) {

            case Monday:

                NSLog(@"Monday");

                break;

            case Tuesday:

                NSLog(@"Tuesday");

                break;

            case Wednesday:

                NSLog(@"Wednesday");

                break;

            case Thursday:

                NSLog(@"Thursday");

                break;

            case Friday:

                NSLog(@"Friday");

                break;

            case Saturday:

                NSLog(@"Saturday");

                break;

            case Sunday:

                NSLog(@"Sunday");

                break;

            default:

                break;

        }


        Color chooseColor = Yellow;

        switch (chooseColor) {

            case Red:

                NSLog(@"Red");

                break;

            case Orange:

                NSLog(@"Orange");

                break;

            case Yellow:

                NSLog(@"Yellow");

                break;

            case Green:

                NSLog(@"Green");

                break;

            case Blue:

                NSLog(@"Blue");

                break;

            case Dian:

                NSLog(@"Dian");

                break;

            case Purple:

                NSLog(@"Purple");

                break;

            default:

                break;

        }

//        四則運算

        char opr ;

        NSInteger value11;

        NSInteger value12;

        NSInteger result;

        NSLog(@"請輸入運算符:");

        scanf("%c",&opr);

        if(opr=='+'|| opr=='-'|| opr=='*'|| opr=='/'){

            NSLog(@"請輸入兩個整數:");

            scanf("%ld%ld",&value11,&value12);

            switch (opr) {

                case '+':

                    result=value11+value12;

                    break;

                case '-':

                    result=value11-value12;

                    break;

                case '*':

                    result=value11*value12;

                    break;

                case '/':

                    if(value12 == 0){

                        NSLog(@"除數不能爲0");

                        break;

                    }

                    result = value11/value12;

                    break;

                default:

                    NSLog(@"no match");

                    break;

            }

            NSLog(@"%ld",result);

            return 0;

        }else {

            NSLog(@"請輸入正確的運算符!");

        }


    return 0;

  }

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章