코드네임 :
변수 사용하기 본문
근데.. 이거 내용은 그냥 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의-차이데이터-메모리
- C++에선 int 타입으로도 bool 타입과 같은 참거짓 판단이 가능했지만, C#은 bool 타입으로만 가능하다.
- C++에선 switch case문의 case 레이블에 문자열을 사용할 수 없었지만, C#은 가능하다. 또한, C++에선 특정 case 레이블에서 작업을 수행한 뒤 break로 빠져나오지 않으면 자동으로 다음 레이블로 이동하지만, C#에선 이것이 불가능하다.
- 범위 기반 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 |