<문자열 표현식>(" "+" "+a+" ");, (" {0}",a);, ($"{a}");

C#/과제 2019. 3. 24. 01:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
namespace _20190322
{
    class Program
    {
        static void Main(string[] args)
        {
            string name = "Mark";//docs에서 긁어온 예문, 분석필요.
            var date = DateTime.Now;
            Console.WriteLine("Hello, {0}! Today is {1}, it's {2:HH:mm} now.", name, date.DayOfWeek, date);//예문1
            Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");//예문2
 
            Console.WriteLine("Hello, " + name + "! Today is " + date.DayOfWeek + ", it's " + date + " now");//직접 만든거..?
 
            //Console.WriteLine("%d %s와 같은 걸 여기선 그냥 {0}, {1}, {2}, {3}순서로 두고 ",name 같은 변수를 주나봄);
            int a = 1;
            float b = 1.1f;
            char ch = 'x';
            string str = "기모띠";
 
            Console.WriteLine("앙~{0}, {1}, {2}, {3}", a, b, ch, str);//직접 만들어본거1
            Console.WriteLine($"{str}");//($"")를 하면 {0}{1}같은거 없이 바로 안에 변수를 넣어서 변수'값'을 프린트 할 수 있습
            Console.WriteLine("{str}");//앞에 달러 표시 빼면 그대로 {str}을 출력해버림
            Console.WriteLine($"{{str}}");//그럼 {str}을 직접 프린트하고싶으면 어떡하나 싶어서 이것 저것 찍어본 결과 {{str}}하면 됨
            
            Console.ReadKey();
        }
    }
}
 
cs


:

<데이터 타입>데이터 타입int, float, long, double, char, string

C#/과제 2019. 3. 23. 00:50

값형식

값형식의 변수에는 값이 포함되어 있습니다

int형식의 변수에는 부호가 있는 32비트 정수가 포함될 수 있습니다.

이는 개체(?)라고도 하는 형식 인스턴스(?)에 대한 참조를 포함하는 참조형식의 변수와 다릅니다.

모든 값형식은 System.VealuyeType에서 암시적으로 파생됩니다.


값형식에서는 NULL을 쓸수 없음.



(?)개체:클래스 또는 구조체의 정의는 형식이 수행할 수 있는 작업을 지정하는 청사진(설계도)이다.

프로그램에서는 class(클래스)또는 struct(구조체)를 통하여 많은 개체를 만들 수 있습니다.

c++에서 배운 객체=개체넹~


(?)인스턴스:개체를 인스턴스라고도 부른다고 한다.


출처 Docs


근데 독스가 뭘까?

(?)Docs:워드 프로세서//구글번역기





참조형식

참조형식은 변수에 데이터(개체)에 대한 참조(?)가 저장이 된다.

값형식은 값이 직접들어가는데, 참조형식은 참조가 저장이 된다.


참조형식에는 두가지 변수가 같은 개체를 참조할 수 있음!

변수에 대한 작업이 다른 변수에서 참조하는 개체에 영향을 미칠 수 있습니다.

값형식에는 각 변수의 데이터 사본이 들어있어서 못합니다.


사본이 들어있다..

Call of Value, Call of Adress방식을 말하는 건가?


값형식

숫자:int,long,float,double//float자꾸 flaot이라고 타이핑함

문자:char


int 10진, 16진, 2진리터럴을 할당함!

크기는 최대 32비트!

범위를 벗어나면 컴파일 오류가 발생해요!


ex)int a=2147483648 //최대 범위 넘어가면 하면 오류임



long int형이랑 비슷한 느낌인데 64비트임//범위가 짱 넓어짐 21억 넘는건 다 애 쓰면 됨

접미사로 l을 적음


float 부동소주점을 가진 실수형 변수, 접미사에 f를 적음

32비트의 공간!~6-9개 자릿수


double float형의 확장팩 접미사 d를 사용함!


char char형은 유니코드 문자를 사용하는 System.Char구조체의 인스턴스를 선언하는데 쓰임

16비트의 숫자값을 받아서 문자로 표현할 수 있음!

문자 한 개를 받음 값의 양옆에 '' 따옴표를 사용하여 변수에 입력함


참조형식

string.. 너무 졸립다 내일 이어서할랭


string은 0자 이상의 유니코드문자 시퀸스(?)

String의 별칭으로 string을 사용함

참조형식이지만 (==, !=)요고는 개체의 값을 비교하도록 정의됨

문자열이 같은지 비교할 수 있음

string a = "Hello";

stirng b = "H";

b+= "ello";

Console.WriteLine((object)a==(object)b);

하면 true false 값을 표기한다캄( 옹 신기해 )// 예제만들때 꼭 해볼 것

+연산자는 문자열을 연결해줌


배열을 사용해서 개별문자 읽기가 가능

string str="test";

char x=str[2];//x='s';


아래는 예제여요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _20190322
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 2147483647;
            long long_a = a;
            Console.WriteLine(a);
            Console.WriteLine(long_a+"\n");
            a += 1;
            long_a += 1;
            Console.WriteLine(a);//오버플로우 발생
            Console.WriteLine(long_a+"\n\n");//값의 범위가 훨씬큼
 
            float b = 0.000000000000000000000000000000000000034F;
            Console.WriteLine(b);
            b = 0.0000000000000000000000000000000000000034F;//?? Docs엔 3.4e-38까지 괜찮다고 했는데 e-39도 잘 됨
            Console.WriteLine(b);
            b = 0.00000000000000000000000000000000000000034F;//3.399998e-40 정확도가 맛탱이가 가기  시작함
            Console.WriteLine(b);
            b = 0.000000000000000000000000000000000000000034F;
            Console.WriteLine(b+"\n");
 
            double double_b = 0.000000000000000000000000000000000000000000000000000017D;//float 했을때보다 0많이더 붙였는데 끄떡없음
            Console.WriteLine(double_b + "\n\n");//1.7e-308까지 가능하다했는데 해보기 귀찮으니 docs를 믿고 생략
 
 
            char c = 'x';
            Console.WriteLine(c + "\n\n");
 
            string str = "test";
            Console.WriteLine(str);
            char ch = str[2];
            Console.WriteLine(ch);//진짜루 됩니다 진짜루요.
 
            Console.WriteLine("데이터형은 요까지.....");
 
 
            Console.ReadKey();
        }
    }
} 이렇게 하면 되는건지 잘 하고 있는지 잘 모르겠고, 홍대다녀와서 너므 힘들다..
 
cs


:

코드읽기 연습, for문의 이해 값은 값은 값은 값은 값값값값값

C#/과제 2019. 3. 23. 00:17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _20190322
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 5; i++)//(initializer초기화,condision조건,iterator반복)
            {//본문
                Console.Write(i);
                Console.WriteLine(i += 1);
            }
            /*
            i의 값은 0으로 초기화한다.
            i의 값은 0이다.
            0은 5보다 작다.
            비교연산자의 결과 값은 참이다.
            본문을 실행한다.
            i의 값은 0이다.
            0을 출력한다
            i의 값은 0이다
            i의 연산값은 1이다.
            1을 출력한다.
            반복으로 간다.
            i의 값은 1이다.
            증감연산자의 결과값은 2이다.
            i의 값은 2이다.
            2는  5보다 작다.
            비교연산자의 결과 값은 참이다.
            본문을 실행한다.
            i의 값은 2이다.
            2를 출력한다.
            i의 값은 2이다
            연산값은 3이다.
            3을 출력한다.
            반복으로 간다.
            i의 값은 3이다.
            증감연산자의 결과 값은 4이다.
            i의 값은 4이다.
            4는 5보다 작다.
            비교연산자의 결과 값은 참이다.
            본문을 실행한다.
            i의 값은 4이다.
            4를 출력한다.
            i의 값은 4이다.
            연산 결과 값은 5이다.
            5를 출력한다.
            반복으로 간다.
            i의 값은 5이다.
            증감연산자의 결과 값은 6이다.
            i의 값은 6이다.
            6은 5보다 작다.
            비교연산자의 결과 값은 거짓이다.
            for문을 종료한다.
            결과!!!!
            01
            23
            45
            
            */
            Console.ReadKey();
        }
    }
}
 
cs


:

<과제>오우거잡기(3단계완성)

C#/과제 2019. 3. 22. 19:07
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Study_00
{
    class Test
    {
        public Test()//c# Test 클래스의 생성자
        {
            Console.ForegroundColor = ConsoleColor.White;
            //몬스터 이름은 오우거입니다.
            string monster_name = "오우거";
            Console.WriteLine("몬스터의 이름은 " + monster_name + "입니다.");
 
            //몬스터의 체력은 123 입니다.
            int monster_hpmax = 123;
            int monster_hp = monster_hpmax;
            Console.WriteLine("몬스터의 체력은 " + monster_hp + "/" + monster_hpmax + "입니다.");
 
            //몬스터는 사납고 무섭습니다.
            string monster_character1 = "사나움";
            string monster_character2 = "무서움";
            Console.WriteLine("몬스터의 특성은 " + monster_character1 + ", " + monster_character2 + "입니다.\n");
            //용사의 이름은 홍길동 입니다.
            string warrior_name = "홍길동";
            Console.WriteLine("용사의 이름은 " + warrior_name + "입니다.");
            //용사의 체력은 80입니다.
            int warrior_hpmax = 80;
            int warrior_hp = warrior_hpmax;
            Console.WriteLine("용사의 체력은 " + warrior_hp + "/" + warrior_hpmax + "입니다.");
            //용사의 공격력은 4입니다.
            int warrior_damage = 4;
            Console.WriteLine("용사의 공격력은 " + warrior_damage + "입니다.\n");
 
 
 
            //공격하시겠습니까?
 
            for (int i = 1true;)
            {
                string choice;
                int nof;
                Console.Write("공격하시겠습니까?(y/n):");
                choice = Console.ReadLine();
                if (choice != "y")
                {
                    Console.WriteLine("몬스터가 도망갔습니다.");
                    Console.ReadKey();
                    break;
                }
 
 
 
                Console.Write("몇회 공격하시겠습니까?:");
                nof = int.Parse(Console.ReadLine());
 
                for (int j = 1; j <= nof; j++, i++)
                {
                    //용사가 몬스터를 공격했습니다.
                    Console.WriteLine("용사가 " + monster_name + "을 공격했습니다.[" + i + "회]");
                    //몬스터의 체력은 119입니다.(119/123형식으로 표시)
                    monster_hp = monster_hp - warrior_damage;
                    System.Threading.Thread.Sleep(1000);
 
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(monster_name + "가 " + warrior_damage + "의 피해를 받았습니다!!");
                    Console.ForegroundColor = ConsoleColor.White;
                    
 
                    if (monster_hp <= 0)
                    {
                        
                        Console.WriteLine("몬스터의 체력은 " + "(0" + "/" + monster_hpmax + ")입니다.\n");
                        Console.WriteLine("몬스터가 죽었습니다.");
                        break;
                    }
                    else
                    {
 
                        Console.WriteLine("몬스터의 체력은 (" + monster_hp + "/" + monster_hpmax + ")입니다.\n");
                        System.Threading.Thread.Sleep(1000);
                    }
                    
 
                }
                if (monster_hp <= 0)
                {
                    Console.ReadKey();
                    break;
                }
                
 
            }
 
 
 
        }
        
    }
}
 
 
cs


:

methods

C#/수업내용 2019. 3. 22. 14:32

메서드(methods)
문장을 포함하는 코드 블록이다, c나 c++에서는 함수라고 부른다.
프로그램에서 정의(및 선언) 하여 호출하여 사용한다.

c#의 모든 프로그램의 진입점이다.

메서드
https://docs.microsoft.com/ko-kr/dotnet/csharp/methods
컨텍스트
https://docs.microsoft.com/ko-kr/dotnet/api/system.runtime.remoting.contexts.context?view=netframework-4.7.2

'C# > 수업내용' 카테고리의 다른 글

<인벤토리>Array형으로 롤백  (0) 2019.04.01
<인벤토리>List<T> 제네릭형  (0) 2019.04.01
이따가 분류  (0) 2019.03.29
1차원 배열  (0) 2019.03.28
<foreach in, for, while>  (0) 2019.03.27
:

안녕세상아

잡담 2019. 3. 22. 11:59

printf("Hello World\n");
cout << "Hello World"<<endl;

'잡담' 카테고리의 다른 글

BPM 체크  (0) 2019.06.04
마인드맵  (0) 2019.05.13
내일 정  (0) 2019.04.30
: