코드네임 :

변수 사용하기 본문

프로그래밍/Unity(C#)

변수 사용하기

비엔 Vien 2023. 6. 29. 23:43

근데.. 이거 내용은 그냥 C랑 똑같아서...( 좀 다른거 있긴 함!!! )

 

⬇️ 약간 비슷한 의미라고 생각되는 것들

C#  /  Unity C
using typedef
Console.WriteLine();  /  Debug.Log(); printf();
   
array.Length sizeof(array)
음 몰?루 더 찾으면 적어야지  
   
   
   
   

⬇️ 참고사이트

https://moguwai.tistory.com/entry/C과-C의-문법적인-차이점

요 링크는 너무 정보가 많아서,, 드가서 봐...

 

https://velog.io/@cedongne/OOP-C과-C의-차이데이터-메모리

  1. C++에선 int 타입으로도 bool 타입과 같은 참거짓 판단이 가능했지만, C#은 bool 타입으로만 가능하다.
  2. C++에선 switch case문의 case 레이블에 문자열을 사용할 수 없었지만, C#은 가능하다. 또한, C++에선 특정 case 레이블에서 작업을 수행한 뒤 break로 빠져나오지 않으면 자동으로 다음 레이블로 이동하지만, C#에선 이것이 불가능하다.
  3. 범위 기반 for문을 Modern C++에선와 같이 작성했지만, C#에선라는 별개의 함수로 작성한다.
for(auto ele : array){ ... }
foreach(int ele in array){ ... }

 


 

변수 종류


Bool 타입

 

✔︎ C#에서는 bool 타입으로만 참/거짓 판단이 가능하다는 것을 기억!


Float 타입  &  Double 타입

부동소수점형..

✔︎ C#에서는 float, double, decimal 등의 타입 사용시 뒤에 literal 해야함..!

    ( float a = 160.5f;

         → f 안쓰면 double 형으로 인식해버림, 따라서 float형에 더큰 메모리값을 가진 double 형을 집어넣었으므로 에러 발생! )

 

✔︎ 왠만하면 float를 쓰되, 범위를 나타내기 힘든 숫자라면 double 사용

    (double은 float보다 메모리를 2배 더 저장하기 때문)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	void Start() { // Update 함수에 작성해도 결과는 나오지만 계속 업뎃되므로 보기 불편
    
		float height1 = 160.5f;
		float height2;
		height2 = height1;
		Debug.Log(height2);
    }
}

/* 출력결과 : 160.5 */

 


int 형

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{

    void Start() {  // Update 함수에 작성해도 결과는 나오지만 계속 업뎃되므로 보기 불편
    
        int age;
        age = 30;
        Debug.Log(age);
    }

/* 실행결과 : 30 */

 


' Char ' 형 

문자형


" String " 형

문자열형

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        string name;
        name = "Sera";
        Debug.Log(name)
    }
}

 


연산

 

변수와 연산 (숫자와 숫자 의 연산)

 

덧셈연산 +

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        int answer;
        answer = 1 + 2;
        Debug.Log(answer);
        /* 3 */
    }
}

 

- , * ,  /

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        int answer;
        answer = 3 - 4;
        Debug.Log(answer);

        answer = 5 * 6;
        Debug.Log(answer);

        answer = 8 / 4;
        Debug.Log(answer);
    }
}

/* 결과

-1
30
2

*/


변수와 변수 의 연산

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        int n1 = 8;
        int n2 = 9;
        int answer;
        answer = n1 + n2;
        Debug.Log(answer);
        /* 17 */
    }
}

 


편리한 쓰기 방법 (연산자)

... 음 걍 얘도 C랑 똑같은디

 

1. 덧셈연산자 :  +=

~ ~ ~
	answer = 10;
	answer += 5 ;     // answer = answer + 5;

	Debug.Log(answer);
~ ~ ~

/* 실행결과 15 */

 

2. 증감연산자 :  ++ , --  ( += 1 과 같음)

~ ~ ~
	answer = 10;
	answer++;    // answer += 1;    // answer = answer + 1;

	Debug.Log(answer);
~ ~ ~

/* 실행결과 11 */

 


연결

 

문자열과 문자열의 연결

 

문자열은 숫자처럼 연산 불가,

BUT +연산자나 +=연산자를 사용해 문자열 연결 가능!!

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        string str1 = "happy ";
        string str2 = "birthday!";
        string message;

        message = str1 + str2;
        Debug.Log(message);
        
        /* 혹은
        string str1 = "happy ";
        string str2 = "birthday!";

        str1 += str2;   // str1 = str1 + str2;
        Debug.Log(str1);
        */

    }
}

 

 


문자열과 숫자의 연결

 

덧셈연산을 할 때 연산되는 것 중 문자열이 하나라도 끼여있다면 그 전체의 결과가 자동으로 문자열로 바뀌게 되는 형변환이 일어남

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test2 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
                string str = "happy";
        int num = 123;

        Debug.Log(str.GetType());  // string
        Debug.Log(num.GetType());  // int

        string message = str + num;  
        Debug.Log(message);  // happy123

        Debug.Log(str.GetType());  // string        
        Debug.Log(num.GetType());  // int
        Debug.Log(message.GetType()); // string

    }
}

/* 자료형 확인(GetType())한 거 뺀 결과

happy123

*/

 

궁금해서 해본거 (형변환 casting했을 때의 결과와 자료형 확인)

 옆에 주석 처리 된거는 실행결과임

        int num1 = 345;
        int ab = num1 + num1;
        Debug.Log(num1.GetType());  // int
        Debug.Log(ab.GetType());  // int
        Debug.Log(ab);  // 690

        string num2 = num1.ToString();
        Debug.Log(num1.GetType());  // int
        Debug.Log(num2.GetType());  // string

        string abs = num1 + num2;
        Debug.Log(abs); // 345345
        Debug.Log(num1.GetType()); // int
        Debug.Log(num2.GetType()); // string

'프로그래밍 > Unity(C#)' 카테고리의 다른 글

Unity랑 다른 VS 연결법  (0) 2023.07.02
배열  (0) 2023.07.02
조건제어문 (C와 내용 같음...^^)  (0) 2023.06.30
C# 스크립트 & 실행  (0) 2023.06.27
Unity 기초  (1) 2023.06.26