5일차(제어문2(switch,while,do~while,for~))
=>p118
->다중if문 대용
switch~case=>다중 if문==>속도가 느림
if(조건식)
문장1
else if(조건식2)
문장2
...
형식) 조건의 결과->숫자
su%2==0
switch(조건식){ //수식,변수==>상수
case 값1: 실행문장;
break;
case 값2: 실행문장2;
break;
..
default:->조건에 만족하는것이 없을때
}
j0830
=>SwitchTest
================
SwitchTest3
=>반복문=>특정조건이 거짓이 될때까지
계속해서 실행이 되는 구문
for,while,do~while
==================
while->do~while->for문
변수가 필요로하는 경우
1.계산하는 문제->ex)1~100합계
1+2+3+....100=? int sum
반복할 횟수->int repeat
// ======================
2.입력을 받아서 처리해주는 프로그램
3.현재 프로그램의 상태를 기억할 필요가 있을때->변수
=>ex)=>그림판
boolean mouseclicked=false;
if(mouseclicked==true){ // if(mouseclicked){
그림그리는 코딩...
} }
=============================
while(조건식) //조건식이 참인동안
실행할 문장;=>하나이상 실행시 블럭처리
do{
반복해서 실행할 구문;//(1)먼저 무조건 실행
}while(조건식)//(2)조건체크
=>먼저 실행할 문장부터 구현하고 나서 나중에 조건식체크
=>누적의 개념->게시판의 글목록보기에서 실행
=>WhileTest2.java
1.반복할 횟수가 정해져있는 경우=>for,while
=>WhileTest.java
2.반복할 횟수가 정해져있지 않은 경우
=>while,do~while
=>ex)파일메뉴->외부에서 파일불러오기
=>파일입출력
============================
<문제>WhileTest2.java
1)변수 2개를 이용해서
int start=20,end=40
//시작 종료값
2)결과)
start=20
start=21
start=22
...
start=40
int start=40, end=20
->첫번째수는 두번째수보다
클수가 없습니다.
=============================
형식)=>ForTest
ex)for(초기값 설정;조건식;증감식)
반복해서 실행할 구문;
(1) (2)(5)
for(int i=0;i<3;i++)(4)
(3)->실행문장(6)
for문->초기값은 생략가능
->for문 밖에 선언가능
->증감식은 생략이 가능
=>for문 안쪽에 코딩
i=1=>sum=sum+i;
0+1=1
gop=gop*i;
1*1=1
===============
i=2일때 sum=sum+i
1+2=3
gop=gop*i;
1*2=2
================
i=3일때 sum=sum+i(3+3)
gop=gop*i(2*3)
================
i=4일때 sum=sum+i(6+4)
gop=gop*i(6*4)
=================
<문제>=>짝수들의 합을 구하기
1~100까지 합계->5050
2의 배수이면서 7의 배수들의
합계를 구하기
for(int i=0;i<=100;i+=2){ //0,2,4,6,,,
//짝수인 경우에만 합계를 구하기
//if(i%2==0)//2,4,6,8,10
sum+=i;//sum=sum+i;
gop*=i;//gop=gop*i;
}
1.참조형 변수와 같은 자료형의 크기
->int,float
=====================
2. byte b=10;
char ch='A';
int i=100;
long l=1000L
==>자동형변환
a) b=(byte)i;//4->1byte->생략
불가
b)ch=(char)b;//1byte->2byte
-128~127==>0~65535
=>양수때문에 생략불가
c)short s=(short)ch;
-32768~32767<--0~65535
==================
d,e
d)float f=(float)l; //long->float
=>float f=l;
e)i=(int)ch;//2byte->4byte
=>생략가능
==================
4번.
a,b,c,d
================
byte b=256;//-128~127
char c='';//에러유발
char c=' '//빈문자->가능
char answer="no";
float f=3.14F; //(float)3.14;
double d=1.4e3f;//->float->double