2016. 2. 23. 19:04
https://blog.naver.com/nagne2011/220635962629
class Program
{
static void Main(string[] args)
{
//Console.Write( ); = 엔터키를 안먹이고 출력
//Console.WriteLine( ); = 엔터키를 먹이고 출력 // =Console.Write(\n);
string str = string.Format("{0} {1} {0}", 10,20);
Console.WriteLine(str);
Console.WriteLine("int {0} byte", sizeof(int)); //int형의 사이즈를 확인가능
Console.WriteLine("{0} ~ {1}", int.MinValue, int.MaxValue); //int형의 최소, 최대확인가능
/*4자리씩 찎기
Console.WriteLine("{0:N} ~ {1:N}", int.MinValue, int.MaxValue);
*/
//mecimal형의 사이즈를 확인가능 128bit다
Console.WriteLine("decimal {0} byte : {1} ~ {2}",
sizeof(decimal), decimal.MinValue, decimal.MaxValue);
//byte형의 사이즈를 확인가능
Console.WriteLine("byte {0} btye : {1} ~ {2}",
sizeof(byte), byte.MinValue, byte.MaxValue);
//sbyte형의 사이즈를 확인가능
Console.WriteLine("sbyte {0} btye : {1} ~ {2}",
sizeof(sbyte), sbyte.MinValue, sbyte.MaxValue);
//char a = 'a'; //멀티바이트라면 영문만 입력가능하지만, C#은 유니코드 기반이라 한글도 입력 가능
char a = '한';
//char형의 사이즈를 확인가능
Console.WriteLine("char {0} btye : {1} ~ {2}",
sizeof(char), char.MinValue, char.MaxValue);
//float형의 사이즈를 확인가능
Console.WriteLine("float {0} btye : {1} ~ {2}",
sizeof(float), float.MinValue, float.MaxValue);
//double형의 사이즈를 확인가능
Console.WriteLine("double {0} btye : {1} ~ {2}",
sizeof(double), double.MinValue, double.MaxValue);
//bool형의 사이즈를 확인가능
Console.WriteLine("bool {0} btye : {1} ~ {2}",
sizeof(bool),true, false);
int[] aa = new int[5] { 1, 2, 3, 4, 5 };
int[] bb = new int[5];
int[] cc = new[] { 1, 2, 3, 4, 5, 6, 7 };
int[] dd = { 1, 2, 3, 4, 5 };
//퍼센트 연산
int aaa = 32;
int bbb = 5;
Console.WriteLine("{0} % {1} = {2}", aaa, bbb, aaa % bbb); //int 뿐만 아니라
float ccc = 3.14f;
float ddd = 0.7f;
Console.WriteLine("{0} % {1} = {2}", ccc, ddd, ccc % ddd); // float형식도 가능
//연산 순서 tnstj
int n0 = 10;
int n1 = n0;
Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
n1 = n0++;
Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
n1 = ++n0;
Console.WriteLine("n0 = {0}, n1 = {1}", n0, n1);
//switch //ans
int switchNum = 10;
//string 넣을수 있다.
// int switchStr = 개구리;
switch(switchNum)
{
case 0:
break;
case 10:
break;
}
//비트연산자
int bitA = 4;
int bitB = 2;
Console.WriteLine("{0} & {1} = {2}",
Convert.ToString(bitA,2),
Convert.ToString(bitB, 2),
Convert.ToString(bitA & bitB, 2));
Console.WriteLine("{0} & {1} = {2}",
Convert.ToString(bitA, 2),
Convert.ToString(bitB, 2),
Convert.ToString(bitA | bitB, 2));
//qlxm vmfform
int sword = 0x0001; //0x 는 16진수 라는 뜻 2진수로 표현 시 : 0000 0000 0000 0001
int staff = 0x0002; //0000 0000 0000 0010
int axe = 0x0004; //0000 0000 0000 0100
int bow = 0x0008; //0000 0000 0000 1000
int spear = 0x0010; //0000 0000 0001 0000
//이때, 비트 플래그 순서에 유의한다
//int next = 0x0020;
//int next = 0x0040;
//int next = 0x0080;
//int next = 0x0100;
int weaponUsable = sword | axe | spear; //사용 가능한 무기 전체
//0001
//0011
//0111
if ((weaponUsable & staff) != 0)
{
Console.WriteLine("스태프 사용 가능");
}
else Console.WriteLine("스태프 사용 불가능");
if ((weaponUsable & axe) != 0)
{
Console.WriteLine("도끼 사용 가능");
}
else Console.WriteLine("도끼 사용 불가능");
//사용 가능한 무기 제외하기
weaponUsable = weaponUsable & (~axe); //도끼 제외
if ((weaponUsable & axe) != 0)
{
Console.WriteLine("도끼 사용 가능");
}
else Console.WriteLine("도끼 사용 불가능");
//사용 가능한 무기 추가하기
weaponUsable = weaponUsable | axe; //도끼 추가
if ((weaponUsable & axe) != 0)
{
Console.WriteLine("도끼 사용 가능");
}
else Console.WriteLine("도끼 사용 불가능");
//단위 이동
int value = 5; //0000 0000 0000 0000 0000 0000 0000 0101 (2)
value = value << 2;
//대략 한칸 이동할때마다 2배Tlr 늘어난다고 보면 된다 //곱연산 보다 fast
Console.WriteLine("valsue = {0}", value);
//value = 0000 0000 0000 0000 0000 0000 0001 0100 (2);
//반대도 된다
value = value << 2;
Console.WriteLine("valsue = {0}", value);
//value = 0000 0000 0000 0000 0000 0000 0000 0010 (2);
/*실습*/
//int sword = 0x0001;
//int staff = 0x0002;
//int axe = 0x0004;
//int bow = 0x0008;
//int spear = 0x0010;
//zd
//int weaponUsable = 0x0000;
Console.WriteLine("---===<< Class Info >>===---");
Console.WriteLine("| Warrior | weapon : sword, axe, spear ");
Console.WriteLine("| Mage | weapon : staff, spear ");
Console.WriteLine("| Rogue | weapon : sword, bow ");
Console.Write("Pleas Select Class... : ");
int player = Int32.Parse(Console.ReadLine());
Console.Write("\n");
switch (player)
{
case 1:
Console.WriteLine("Select Class is 'Warrior'..!");
weaponUsable = sword | axe | spear;
break;
case 2:
Console.WriteLine("Select Class is 'Mage'..!");
weaponUsable = staff | spear;
break;
case 3:
Console.WriteLine("Select Class is 'Rogue'..!");
weaponUsable = sword | bow;
break;
default:
Console.WriteLine("Miss Select..!");
Console.WriteLine("Select Class is 'Warrior'..!");
weaponUsable = sword | axe | spear;
break;
}
Console.WriteLine("--==<< state >>==--");
if ((weaponUsable & sword) != 0)
{
Console.WriteLine("enable 'sword'");
}
else Console.WriteLine("disable 'sword'");
if ((weaponUsable & staff) != 0)
{
Console.WriteLine("enable 'staff'");
}
else Console.WriteLine("disable 'staff'");
if ((weaponUsable & axe) != 0)
{
Console.WriteLine("enable 'axe'");
}
else Console.WriteLine("disable 'axe'");
if ((weaponUsable & bow) != 0)
{
Console.WriteLine("enable 'bow'");
}
else Console.WriteLine("disable 'bow'");
if ((weaponUsable & spear) != 0)
{
Console.WriteLine("enable 'spear'");
}
else Console.WriteLine("disable 'spear'");
//while문
int i = 0;
while (i < 10)
{
++i;
Console.WriteLine("while : {0}", i);
}
i = 0;
do
{
++i;
Console.WriteLine("while : {0}", i);
}
while (i < 10);
//for문
int[] testArray = new int[10];
for (int j = 0; j < 10; j++)//이때, int i로 할수없다 위에서 사용했기때문. 즉 지역변수 사용X
{
testArray[j] = j+1;
Console.WriteLine("For : {0}", j);
}
Console.ReadLine();
Console.ReadLine();
}
}
728x90