반복문

어려워지고 있어...
12월 13일
C/C++ 실행시 창이 바로 꺼지면 [프로젝트 속성 - 링커 - 시스템 - 하위시스템]<이걸 콘솔로!
손코딩은 코딩습관을 많이 보니 띄어쓰기, 들여쓰기에 유의하기. 참고하려면 책을 보기
학점 숙제에 대한 피드백
90 > fAverage
└ 90은 int고 fAverage는 float이라 맞춰줘야 한다.
float fAver = 0.f; <초기화 할 때도 자료형에 맞춰서 한다!
fAver = float(iTotal) / 3.f;
if((90.f <= fAver) && (100.f >= fAver))
{
}
상수는 왼쪽, 변수는 오른쪽에 둔다.
[주의사항]
int iTemp = 10;
int iSour = 20;
if((5 < iTemp) && (iSour =0))
cout << iSour << endl;
//=> 출력되는 결과 없음
if((5 < iTemp) && (iSour = 100)) //둘 다 참, iSour == 100아니고 100을 대입하라임
cout << iSour << endl;
//=>100
여기서 주 연산자는 &&이다. 앞에꺼보고 앞이 참이면 뒤까지 확인하지만,
앞이 false면 뒤에 보지 않고(대입 안 하고) false다. => iSour = 100 코드 동작하지 않는다는 뜻
if((5 < iTemp) || (iSour = 100)) //앞이 true니 뒤의 코드는 실행되지 않는다.
cout << iSour << endl;
//=>20
분기문[switch]
swith() //조건식, true/false는 아니고 값이 들어온다.
{
case 1 : cout << 콜라 << endl; //정의부 : 조건식에 맞춰 실행할 코드 결정
case 2 : cout << 사이다 << endl; //case옆에 반드시 상수값(변수x) :(시작점)을 붙임
}
1입력시 콜라, 사이다 둘 다 출력된다. 사이에 break;를 넣어줘야함.
마지막 case에도 break; 넣는 습관을 들이자.
리터럴 상수 → 심볼릭 상수 : const를 붙인다.
const int iOne = 1; // 선언과 동시에 초기화. iOne상수됨 => case 뒤에 올 수 있다.
case에 없는 경우라면? 이런 걸 처리하기 위해
default : //case로 명시된 분기점이 아닌 경우 실행되는 코드블럭
cout << "잘 못 눌렀슴다." << endl;
break;
스테이지 1,2,3 ... 그런 것들에 쓰면 가독성도 좋고 괜찮음
case문 안에서 if문 사용 가능
case 내부에서 선언하는 것은 문제 없음 - default 구문 있는 경우 사용 불가하다.
case를 지역이라고 생각하면 편함. case 1(서울)의 A(오소리씨), case 2(경기도)의 A(오소리씨)....
그러나 case 밖에서 선언된 것은 소속불분명, default가 예외처릴 해야할지 말아야할지 알 수 없기에 안됨...
[goto] 안쓴다봐야...
int*iNumber = 0;
goto jump;
iNumber = 100;
jump:
cout << iNumber << endl;
//=> 0이 나옴. 맨 위로 보내버리는 것.
맨 위로 보내는 것X 잘못씀
선언한 지점으로 이동시켜 코드의 흐름을 혼란스럽게 만들 수 있다.
분기문은 아닌데 그런 역할을 하는 연산자
[삼항 연산자]
단항(단수), 이항(두 개 이상) 연산자와 동일한 의미로 피 연산자가 3개인 연산자를 삼항 연산자라고 함
1+2<피 연산자는 1과 2, 연산자는 +
(조건식) ? (참일 때 실행하는 코드) : (거짓일 때 실행하는 코드)
int iTemp = 10;
int iSour = 20;
int iMax = 0;
iMax = (iTemp > iSour) ? iTemp : iSour;cout << iMax << endl;
=> 거짓이니 20
삼항 연산자보단 if문 많이 씀 - 가독성이 떨어진다.
★반복문★ while, do while, for while() 조건식 : 참일 때 반복 수행
{
반복을 수행할 각종 코드가 설계되는 곳
}
무한루프 멈추기 - false되기, break쓰기
int iNumber = 100;
int iSelect = 0;
while (100 != iSelect) -100이 아니면 실행해라
{
cout <<"입력하세요";cin >> iSelect;cout<<1<<endl;
}
=> 1,2,3,4,5 .... ok 100 넣으면 멈춤
while(iNumber--)
3이니까 실행-> 2로 줄어들음 -> 2니까 실행 -> 1로 줄어들음 -> 1이니까 실행 -> 0됨 -> 0이니까 실행x - 세 번 나옴
while(--iNumber) 선연산 후대입
- 두 번만 나옴
while(true)
{
cout << 1 << endl;
iNumber--;
if (0 == iNumber)
break;
}
- 1 세 번 뜸
break는 { } 구문을 탈출 시키는 키
continue; 반복문 안에서만 사용할 수 있는 키워드, countinue를 만나면 루프의 초기화 식으로 이동시킴 ()로 이동
continue쓰면 다시 입력받을 수 있을 수 있음.
구구단 2단 출력하기
반복되는 것과 고정된 것 구분해보기
2*1=2
2*2=4
2*3=6
int i = 1;
while(10 > i) or if문 사용
{
cout << 2<< '*" << i << '=' << 2*i << endl;
++i;
if(10 == i)
break;
}
숙제 : 구구단 2단~9단