inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Học ngôn ngữ C thông qua các vấn đề

In từ 1 đến N

{}의 사용유무

285

pele0607

3 câu hỏi đã được viết

0

#include<stdio.h>

int main(){

int n,i=1;

scanf("%d", &n);

while(i<=n){

printf("%d ",i);

i++;

}

return 0;

}

제가 코드를 처음에 작성할때 while문 뒤에 {}를 작성을 안하고  컴파일 해서 돌려봤는데 1이 무한번 반복도더라고요...다시 { }을 넣으니까 제대로 되고요. 이유가 뭔지 알수있을까요??ㅜㅜ

c

Câu trả lời 2

1

codingcamp

while(i<=n)
    printf("%d\n", i);
    i++;

처럼 중괄로로 묶지 않으면 c컴파일러는 while문의 소속구문으로 ;(세미콜론)까지만 인식합니다.

즉 i++은 while문의 반복구문이 아닙니다. 그래서 i가 1씩 증가하는 일이 반복하는 동안에 일어나지 않는 것입니다. 그러니 while문의 조건도 거짓이 될리가 없구요. 

앞으로 if문이 되었건, while문이 되었건 둘 줄 이상을 소속구문으로 할 때는 꼭 중괄로로 영역을 표시해야 합니다.

0

pele0607

아 감사합니다! 덕분에 강의 잘 듣고 있습니다!

음료수 자판기 출력이 이상하게 나옵니다

0

145

2

i 값 초기화 질문

0

72

2

recipe for targe 'AA.exe' failed

0

65

1

30과 10의 xor

0

196

1

커리큘럼 문의 드립니다

0

234

1

for문에서 sum 관련 질문

0

182

1

이렇게 풀어도 맞는걸까요?

0

257

2

이렇게 풀어도 맞는 풀이일까요?

0

304

1

20페이지 홀,짝,제로 문제에서 이 코드로 짜도 괜찮을까요?

0

259

1

24. 최솟값 구하기

0

334

1

질문 있습니다.

0

328

1

배열을 전역변수로 설정하는 이유

1

668

1

41. A를 #으로에서 질문 있습니다.

0

292

1

20번 소수 판별하기에서 질문 있습니다.

0

426

1

42번 bus error;;;

0

613

1

정수형 배열에서 배열 크기

0

396

1

38. 자리찾기 커지는 방향으로..

0

305

1

37. 배열의 회전에서 ...

0

282

1

1차원 배열에서

0

274

1

지수연산에서

0

301

1

7.연필 개수 문제

0

382

1

a=(int)a 에서 왜 괄호를 붙이나요 a=int a 는 왜안되나요

0

847

1

섹션 6. 소수

0

324

1

왜 2중for문을 두개 쓴건가요?

0

247

1