C lang

[C language] Geany편집기 - 4. for, for-if(break, continue, go to~EXIT), while

걍작 2022. 3. 23. 00:43

#정리

#for - 반복문
//for(i=0;i<10;i++){} 뼈대로 작성한다.
//for문의 초기화 하는 부분(i=0;i<10;i++)이 어느 체제에서 구현하는지에 따라서 조금 달라진다.
 - i값을 밖에서 별도로 초기화 해야할 때도 있다.


# for - if // break, continue, go to
<if문과 break, continue, go to 를 활용한 for문 반복 조절>
// if(x==5) break; //x = 5  되면 반복 종료
// if(x==5) continue; //x = 5  되면 종료 후 다음 반복 시작
// if(x==5) goto EXIT; ~~ EXIT : 실행문; //x = 5 되면 지정한 위치(EXIT)로 이동
 - 연결된 EXIT에 실행문이 있어야한다.


#while - 반복문
//while(조건) - break; 뼈대로 작성

 

 

#for - 반복문

//for(i=0;i<10;i++){} 뼈대로 작성한다.

//for문의 초기화 하는 부분(i=0;i<10;i++)이 어느 체제에서 구현하는지에 따라서 조금 달라진다.

 - i값을 밖에서 별도로 초기화 해야할 때도 있다.

 

--예문 코드 보기--

더보기
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
	printf("for...\n");
	
	
	//초기화 하는 부분이 어디서 구현하는지에 따라서 조금 달라진다.
	
	int x,i;//i값의 초기화를 꼭 밖에 적어야할 때가 있다.
	for(x=0;x<10;x++){
		for(i=0;i<10;i++){

			printf("%d,%d ",x,i);
		}
		printf("\n");
	}

	
	
	//2*1=2 ~ 9*9=81
	for(x=2;x<10;x++){
		for(i=1;i<10;i++){
			printf(" %d*%d=%d ",x,i,x*i);
		}
		printf("\n");
	}
	
	return 0;
}

 

 

------------------

#mission : 3명의 학생 성적 처리 프로그램 작성

 

--예문 코드 보기--

더보기
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
	//3명의 학생 성적 처리 프로그램.
	
	for(int i=0;i<3;i++){
		
	printf("Input student name: ");
	char *name1 = malloc(sizeof(char)*11);
	scanf("%10s",name1);
	printf("name1: %s\n",name1);
	free(name1);
	
	printf("Input %s kor: ",name1);
	int kor1=0;
	scanf("%d",&kor1);
	
	printf("Input %s eng: ",name1);
	int eng1=0;
	scanf("%d",&eng1);
	
	printf("Input %s math: ",name1);
	int math1=0;
	scanf("%d",&math1);		
	
	printf("kor: %d eng: %d math: %d\n ",kor1,eng1,math1);
	
	int total = kor1+eng1+math1;
	float avg = total/3;
	char *grade = "A";
	
	if (avg >= 90){
		grade = "A";
	}else if(avg >= 80){
		grade = "B";
	}else if(avg >= 70){
		grade = "C";
	}else if(avg >= 60){
		grade = "D";
	}else {
		grade = "F";
	}
	
	printf("total: %d, avg: %.2f, grade: %s\n",total,avg,grade);
	}
	
		
	return 0;
}

 


 

# for - if // break, continue, go to

<if문과 break, continue, go to 를 활용한 for문 반복 조절>

// if(x==5) break; //x = 5  되면 반복 종료

// if(x==5) continue; //x = 5  되면 종료 후 다음 반복 시작

 

// if(x==5) goto EXIT; ~~ EXIT : 실행문; //x = 5 되면 지정한 위치(EXIT)로 이동

 - 연결된 EXIT에 실행문이 있어야한다.

 

--예문 코드 보기--

더보기
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
	printf("for...i==5 goto - EXIT\n");
	
	
	//초기화 하는 부분이 어디서 구현하는지에 따라서 조금 달라진다.
	
	int x,i;//i값의 초기화를 꼭 밖에 적어야할 때가 있다.
	for(x=0;x<10;x++){
		for(i=0;i<10;i++){
			//if(x==5) break; //x = 5  되면 반복 종료
			//if(i==5) break; //i = 5  되면 반복 종료
			//if(x==5) continue; //x = 5  되면 종료 후 다음 반복 시작
			//if(i==5) continue; //i = 5  되면 종료 후 다음 반복 시작
			//if(x==5) goto EXIT; //x = 5 되면 지정한 위치로 이동
			if(i==5) goto EXIT; //i = 5 되면 지정한 위치로 이동
			printf(" %d,%d ",x,i);
		}
		printf("\n");
	}
	printf("for...111\n");// EXIT 지정 위치 앞이어서 이 값은 안찍히고 아래부터 출력된다.
	EXIT : printf("goto...EXIT\n");
	printf("for...222\n");

	
	
	return 0;
}

 


 

#while - 반복문

//while(조건) - break; 뼈대로 작성

//반복 성적 처리 mission - x누르면 반복 종료

 

--예문 코드 보기--

더보기
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
	printf("while...\n");
	
	char x[2]="x";
	char keyword[2] = "";
	while (1){
		//score
		//End input x
		
		printf("enter [x] to exit..");
		scanf("%2s",keyword);
		printf("strcmp: %d\n",strcmp(keyword,x));

		if(strcmp(keyword,"x")==0){
			break;
		}
		
		
		printf("Input student name: ");
		char *name1 = malloc(sizeof(char)*11);
		scanf("%10s",name1);
		printf("name1: %s\n",name1);
		free(name1);
		
		printf("Input %s kor: ",name1);
		int kor1=0;
		scanf("%d",&kor1);
	
		printf("Input %s eng: ",name1);
		int eng1=0;
		scanf("%d",&eng1);
	
		printf("Input %s math: ",name1);
		int math1=0;
		scanf("%d",&math1);	
	
	
		printf("kor: %d eng: %d math: %d\n ",kor1,eng1,math1);
		
		int total = kor1+eng1+math1;
		float avg = total/3;
		char *grade = "A";
		
		if (avg >= 90){
			grade = "A";
		}else if(avg >= 80){
			grade = "B";
		}else if(avg >= 70){
			grade = "C";
		}else if(avg >= 60){
			grade = "D";
		}else {
			grade = "F";
		}
	
		printf("total: %d, avg: %.2f, grade: %s\n",total,avg,grade);
		
	}
	printf("end while....\n");

	
	return 0;
}