๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ/C#

[์ด๊ฒƒ์ด C#์ด๋‹ค] Chapter3 ์—ฐ์Šต๋ฌธ์ œ

by HanaV 2023. 8. 16.
728x90

1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์‚ฌ๊ฐํ˜•์˜ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋„“์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜์„ธ์š”.

using System;

namespace RectArea
{
    class MainApp
    {

        public static void Main(string[] args)
        {
            Console.WriteLine("์‚ฌ๊ฐํ˜•์˜ ๋„ˆ๋น„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
            string  width = Console.ReadLine();

            Console.WriteLine("์‚ฌ๊ฐํ˜•์˜ ๋†’์ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
            string height = Console.ReadLine(); 

            int area = Convert.ToInt32(width) * Convert.ToInt32(height);
            Console.WriteLine("์‚ฌ๊ฐํ˜•์˜ ๋„“์ด๋Š” : {0}", area);
        }
    }
}

 

2. ๋‹ค์Œ ์ฝ”๋“œ์—์„œ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์„ ์ฐพ๊ณ , ๊ทธ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜์„ธ์š”.

int a = 7.3;
float b = 3.14;
double c = a*b;
char d = "abc";
string e = 'ํ•œ';
  • int๋Š” ์ •์ˆ˜๋งŒ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. => double a = 7.3 ํ˜น์€ int a = (int)7.3
  • float๋Š” ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’ ๋’ค์— ์†Œ๋ฌธ์ž f๋‚˜ ๋Œ€๋ฌธ์ž F๋ฅผ ๋ถ™์—ฌ์„œ ํ•ด๋‹น ๊ฐ’์ด float ํƒ€์ž…์œผ๋กœ ํ•ด์„๋˜์–ด์•ผ ํ•จ์„ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.๋งŒ์•ฝ f ๋˜๋Š” F๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ฐ’์€ ๊ธฐ๋ณธ์ ์œผ๋กœ double ํƒ€์ž…์œผ๋กœ ํ•ด์„๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค. => float b = 3.14f;
  • ์—ฌ๊ธฐ์„œ a๋Š” int์ด๊ณ  b๋Š” float์ด๋ฉฐ, int์™€ float ๊ฐ„์˜ ์—ฐ์‚ฐ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ int๋Š” float์œผ๋กœ ์ž๋™ ํ˜• ๋ณ€ํ™˜๋œ๋‹ค. ์ดํ›„์— float์™€ float ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋Š” double๋กœ ์ž๋™ ํ˜• ๋ณ€ํ™˜๋œ๋‹ค. => ์ˆ˜์ •ํ•  ๋ถ€๋ถ„ ์—†์Œ
  • char์€ ๋‹จ์ผ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ์•ŒํŒŒ๋ฒณ ๊ธ€์ž๋‚˜ ์ˆซ์ž, ํŠน์ˆ˜ ๋ฌธ์ž ๋“ฑ ํ•œ ๊ธ€์ž๋งŒ ์ž‘์€ ๋”ฐ์˜ดํ‘œ(')์•ˆ์— ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ char d = 'abc';๋ผ๊ณ  ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด, ๋ฌธ์ž ๋ฆฌํ„ฐ๋Ÿด์— ๋ฌธ์ž๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋œจ๊ฒŒ ๋œ๋‹ค. => char d = 'a'; ํ˜น์€ string d = "abc";
  • string์€ ํฐ ๋”ฐ์˜ดํ‘œ(")์•ˆ์— ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์—, ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์“ฐ๋ฉด char ํ˜•์‹์œผ๋กœ ์ธ์‹๋˜์–ด ์—๋Ÿฌ๊ฐ€ ๋œจ๊ฒŒ ๋œ๋‹ค. = > string e = "ํ•œ"; ํ˜น์€ char e = 'ํ•œ';

3. ๊ฐ’ ํ˜•์‹๊ณผ ์ฐธ์กฐํ˜•์‹์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

๊ฐ’ ํ˜•์‹: ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€์ˆ˜ ๋‚ด์— ์ง์ ‘ ์ €์žฅ๋˜๋ฉฐ ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ

int a = 5;
int b = a; // ๊ฐ’์ด ๋ณต์‚ฌ๋จ

a = 10; // b์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ

Console.WriteLine($"a: {a}, b: {b}");
//=>a๋Š” 10, b๋Š” ๊ทธ๋Œ€๋กœ 5


์ฐธ์กฐ ํ˜•์‹: ๋ฐ์ดํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ๊ฐ€ ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ ์œ„์น˜๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ์ „๋‹ฌ

int a = 5;
ref int b = ref a; // a์˜ ์ฐธ์กฐ๋ฅผ b์— ํ• ๋‹น

a = 10; // b๋„ ๊ฐ™์€ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋ฏ€๋กœ b์˜ ๊ฐ’๋„ ๋ณ€๊ฒฝ๋จ

Console.WriteLine($"a: {a}, b: {b}");
//=> a์™€ b ๋ชจ๋‘ 10

 

4. ๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ์„ ์„ค๋ช…ํ•˜์„ธ์š”.

๋ฐ•์‹ฑ (Boxing): ๊ฐ’ ํ˜•์‹ -> ์ฐธ์กฐ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ
์–ธ๋ฐ•์‹ฑ (Unboxing): ์ฐธ์กฐ ํ˜•์‹ -> ๊ฐ’ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

int value = 42; // ๊ฐ’ ํ˜•์‹ ๋ณ€์ˆ˜
object boxedValue = value; // ๊ฐ’ ํ˜•์‹์„ ๋ฐ•์‹ฑํ•˜์—ฌ object ๋ณ€์ˆ˜์— ํ• ๋‹น

value = 1000;
Console.WriteLine($"boxedValue: {boxedValue}"); //42

// ๋ฐ•์‹ฑ๋œ ๊ฐ’์„ ๋‹ค์‹œ ์–ธ๋ฐ•์‹ฑํ•˜์—ฌ ์›๋ž˜์˜ ๊ฐ’ ํ˜•์‹์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
int newValue = (int)boxedValue;
Console.WriteLine($"newValue: {newValue}"); //42

 

5. ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•œ ํ›„์˜ a์™€ b๋Š” ๊ฐ๊ฐ ์–ด๋–ค ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๊ฒ ์Šต๋‹ˆ๊นŒ?

var a = 2020;
var b = "double";
  • var a = 2020;์—์„œ 2020์€ intํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— a๋Š” intํ˜•์ด ๋œ๋‹ค.
  • var b = "double";์—์„œ "double"์€ stringํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— stringํ˜•์ด ๋œ๋‹ค.
728x90

"); wcs_do();