본문 바로가기

Programming/언어기초상식10

[기초-반복실행구조] do-while문, 복합대입 연산자 do { //코드블록 ... }while(조건); //do~while( ) ; 구조는 반드시 마지막에 세미콜론(;)을 붙여야 한다. 구조를 사용하자. do { //코드블록 ... }while(조건); 구조는 while( ) { ... } 과 유사한 반복 실행 구조를 만들 수 있는데 다른 점은 무조건 한 번은 실행된다는 것이다. 마지막에 세미콜론을 반드시 붙여야 한다. (예시) char x, t='a'; scanf("%c", &x); do { printf("%c ", t); t+=1; //t+=1; 는 t=t+1과 같은 의미이다. }while(t 2021. 2. 23.
[기초-반복실행구조] goto goto 명령문을 사용하면 간단한 반복 실행을 만들 수 있다. 반복 실행 부분을 빠져나오기 위해(즉 무한 반복을 방지하기 위해) 반복 실행 되는 도중에 조건을 검사해야 한다. goto 이름: 이 명령은 이름: 이 작성된 곳으로 프로그램의 실행 흐름을 바꾸어 준다. "이름:" 과 같이 콜론(:)이 붙어있는 부분을 이름표(label, 레이블)라고 한다. 레이블은 특별한 선언 없이 사용할 수 있으며 언더바(_)나 영문자로 시작하면 된다. 레이블은 한 단어처럼 공백없이 모두 붙여 써야 한다. switch( ) ... case ... : ... break; 에서 case ... : 도 일종의 레이블이라고 생각할 수 있다. goto 레이블: 명령을 사용하면 반복되는 부분을 여러 개 자유롭게 만들 수 있다. goto.. 2021. 2. 23.
[기초-조건/선택실행구조] switch문 switch문 기본 switch(정수값) { case 'A': //문자 'A'가 정수값 65('A'의 아스키 값)로 저장되기 때문에 가능하다. ...; break; case 'B': ...; break; case 'C': ...; break; default: ...; } 위와 같은 switch( ) ... case... break; 제어문을 사용할 수 있다. ** break; 를 사용하지 않으면 이후의 명령들도 계속 실행된다. default: 는 제시된 case 를 제외한 나머지 모든 경우에 실행된다. switch( ) 에 주어지는 값은 “정수"값만 가능하며,문자도 아스키코드 정수값이기 때문에 가능하다. switch문 특성 swtich( ).. case ... break; 제어문에서 break;를 제거하.. 2021. 2. 22.
[기초-비트단위논리연산] 비트단위 연산 ** 비트단위(bitwise) 연산자는, ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), >(bitwise right shift)가 있다. 예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면 00000000 00000000 00000000 00000001 이고, ~1은 11111111 11111111 11111111 11111110 가 되는데 이는 -2를 의미한다. (예시) int a=1; printf("%d", ~a); //-2가 출력된다. (참고) 컴퓨터에 저장되는 모든 데이터들은 2진수 형태로 바뀌어 저장된다. 0과 1로만 구성되는 비트단위들로 변환되어 저장되는데, 양의 정수는 2진수 형태로 바뀌어 저장되고, 음의 .. 2021. 2. 22.
[기초-논리연산] XOR 연산 XOR(exclusive or, 배타적 논리합)연산 집합의 의미로는 합집합에서 교집합을 뺀 것을 의미한다. 모두 같은 의미이다. 논리연산자는 사칙연산자와 마찬가지로 여러 번 중복해서 사용할 수 있는데,연산의 순서를 만들어주기 위해 괄호 ( )를 사용해 묶어 주면 된다. 수학에서는 괄호, 중괄호, 대괄호를 사용하지만 C언어에서는 소괄호 ( )만을 사용한다. 예시 printf(“%d”, (a&&!b)||(!a&&b)); //참/거짓이 서로 다를 때에만 1로 계산 2021. 2. 22.
[기초-비트시프트연산] 시프트연산 1. 곱하기 2진수 형태로 저장되어 있는 값들을 왼쪽()으로 지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 반으로 줄어드는데, 왼쪽 비트시프트()가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가된다. 범위(32비트)를 넘어서 이동되는 비트는 삭제된다. int a=10; printf("%d", a1); //10을 반으로 나눈 값인 5 가 출력된다. printf("%d", a2); //10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다. 2. 거듭제곱 int a=1, b=10; printf("%d", a 2021. 2. 21.