본문 바로가기

JAVA

#2 자바 print, 구성, 조건문, 반복문

<print()메소드와 println()메소드의 차이>

1. print()메소드

- ()소괄호 안의 데이터 출력

===> 출력하고자 하는 데이터가 없다면 에러발생!!

2. println()메소드

- ()소괄호 안의 데이터 출력

- 라인변경

===> 출력하고자 하는 데이터가 없다면 줄만바꿈!!


System.out.print(1);

System.out.print(2);

System.out.print(3);

//System.out.print(); 출력할 데이터가 없으므로 에러발생

System.out.println(); //출력할 데이터가 없으므로 줄바꿈 기능만 실행.

System.out.println(1);

System.out.println(2);

System.out.println(3);


<자바프로그램 구성>

class 클래스명

{

//변수 선언 ===> 멤버변수, 필드!! (현 클래스의 모든 메소드내에서 사용가능)

===> 변수선언과 변수초기화를 동시에 하는 것은 가능하나

변수초기화만 따로 작성하면 에러발생!!

자료형 변수명;

//메소드 정의

리턴형 메소드명(변수 선언)===> 지역변수

{

//변수 선언 ===> 지역변수 (현재 메소드내에서만 사용가능)

//변수 초기화(값 할당)

//메소드 호출

//조건문

//반복문

}

}


<조건문>

- 조건에 따라 실행할 문장들을 제어하는 역할.

- 반드시 메소드내에 기술.

1. if문(나홀로 if문)

형식)

if(조건식) //조건식: boolean데이터!!

{

조건식의 결과가 참일때 실행할 문장;

}

2. if~else문

형식)

if(조건식){

조건식의 결과가 참일때 실행할 문장;

}else{

조건식의 결과가 거짓일때 실행할 문장;

}

3. switch~case문

형식)

switch(기준데이터)

{

case 비교데이터1: 실행할 문장1;

case 비교데이터2: 실행할 문장2;

case 비교데이터3: 실행할 문장3;

}

예)

int su=5;

switch(su){

case 1: System.out.println("안녕");

break;

case 2: System.out.println("신짜오");

break;

case 3: System.out.println("Hello");

break;

default: System.out.printiln("감사합니다~!!");

}

switch(수식) //수식의 데이터 값: 정수(byte,short,int), 문자(char)

//JDK7버전이후부터 String데이터가 포함

{

case 비교값1: 실행할 문장1; break;

case 비교값2: 실행할 문장2; break;

case 비교값3: 실행할 문장3; break;

case 비교값4: 실행할 문장4; break;

default: 일치하는 case값이 없을 때 실행할 기본문장;

}


문제) 다음 점수에 해당하는 학점을 화면에 출력하시오. (switch~case사용)

int jumsu=85;

----> 출력값: B학점입니다!!

jumsu (가정:0~100의 정수값)

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

90~100 A학점

80~89 B학점

70~79 C학점

60~69 D학점

0~59 F학점

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

class명: JumsuTest


4. if~else if~else문 (서로 연결된 조건식을 표현할 때 사용, 필터링, 수의 범위표현)

형식)

if(조건식1){

//조건식1이 참일때 실행할 문장

}else if(조건식2){

//조건식1이 거짓이고 조건식2가 참일때 실행할 문장

}else if(조건식3){

//조건식1,2가 거짓이고 조건식3이 참일때 실행할 문장

}else{

//조건식1,2,3이 거짓일때 실행할 문장(나머지 처리)

}

int age=10;//가정: 1~100

===> 10대 20대 30대입니다를 출력하시오.

20 <= age <= 29 <=== 20대 체크

if(20 <= age <= 29){ ===>에러발생!!

===>이유: 한개의 변수를 두개이상의 수와 동시에 비교하는

것은 불가능!!

}

if( (age >= 20) && (age <= 29)){ //20이상 29이하

}

if( (age < 20) || (age > 29)){ //20미만 29초과

}


<반복문> Loop

1. for문

- 일정횟수 반복할 때 사용.

- 규칙적인 수를 표현할 때 사용.

- 배열의 인덱스를 표현할 때 사용.

[형식]

for(초기화1; 조건식2; 증감연산자3)

{

반복적으로 실행할 문장4;

}

for(int i=1; i<5; i++){//i=1,2,3,4,5

System.out.println("안녕~!!");

}

실행순서)

1 - 2(true) - 4 - 3

- 2(true) - 4 - 3

- 2(true) - 4 - 3

- 2(true) - 4 - 3

- 2(false) : for문 탈출!!


2.while문

- 조건이 참인동안 반복실행.

- 조건이 만족되지않는다면 한번도 실행되지 않을 수 있고

조건이 만족한다면 무한히 실행할 수도 있음.

===> 실행횟수: 0~무한대

※if문의 실행횟수: 0 또는 1

[형식]

while(조건식)

{

//반복실행할 문장

}

3.do~while문

- while문과 동일

차이점: 실행횟수(1~무한대) ==> 조건식 결과와 상관없이 무조건 한번실행!!

[형식]

do{

반복실행할 문장;

}while(조건식);


class AgeTest

{

public static void main(String[] args)

{

//10대, 20대, 30대 출력!!

int age=40;//10~39까지만 입력

if(age<10 || age>39){

System.out.println("범위밖의 나이입니다^^: "+ age);

}else //10~39

if(age<=19){//(age>=10 && age<=19){//10이상 19이하

System.out.println("10대입니다!!");

}else if(age<=29){//29~39

System.out.println("20대입니다!!");

}else {//30~39 if(age<=39){

System.out.println("30대입니다!!");

}

}//main

}

class Exam

{

public static void main(String[] args)

{

System.out.print("[");

for(int i=5; i<21; i+=5){//i=i+5){//수를 표현(5 10 15 20)

System.out.print( i );

if(i<20)//i=5,10,15

{System.out.print(", ");}

}

System.out.print("]");

}//main

}


class GugudanTest

{

public static void main(String[] args)

{

int dan=9;

for(int i=1; i<10; i++)

{//곱하여지는 수 : 1~9

System.out.println(dan+"*"+i+"="+ (dan*i) );

}

}//main

}


class JumsuTest

{

public static void main(String args[])

{

int jumsu=85;//0~100

/*

90/10 : 9

93/10 : 9

95/10 : 9

99/10 : 9

*/

switch(jumsu/10)

{

case 10:

case 9: System.out.println("A학점입니다!!");break;

case 8: System.out.println("B학점입니다!!");break;

case 7: System.out.println("C학점입니다!!");break;

case 6: System.out.println("D학점입니다!!");break;

default: System.out.println("F학점입니다!!");

/*

case 100: System.out.println("A학점입니다!!");

case 99: System.out.println("A학점입니다!!");

case 98: System.out.println("A학점입니다!!");

......

case 90: System.out.println("A학점입니다!!");

......

case 60: System.out.println("D학점입니다!!");

default: System.out.println("F학점입니다!!");

*/

}//switch

jumsu=59;

//if~else if~else를 사용해서 학점을 출력하시오.

if(jumsu <0 || jumsu>100){

System.out.println("잘못된 점수입력입니다T.T");

}else if(jumsu>=90){//90~100

System.out.println("A학점!!");

}else if(jumsu>=80){//else: 0~89 if: 80~89

System.out.println("B학점!!");

}else if(jumsu>=70){//else: 0~79 if: 70~79

System.out.println("C학점!!");

}else if(jumsu>=60){//else: 0~69 if: 60~69

System.out.println("D학점!!");

}else{//else: 0~59

System.out.println("F학점!!");

}

}//main

}//class JumsuTest


class LeapYearTest

{

public static void main(String[] args)

{

int year=2016;

boolean b1 = (year%4) == 0;

boolean b2 = (year%100) != 0;

boolean b3 = (year%400) == 0;

System.out.println( b1 && b2 || b3 );

System.out.println("true출력: "+ true);

System.out.println("!true출력: "+ !true);

boolean result = b1 && b2 || b3;

//if(조건식){} ==> 조건식:boolean ===> true,false,boolean변수,비교연산 자,관계연산자

if(result){//(result==true){

System.out.println(year+"년은 윤년입니다!!");

}

else{//if(!result){//(result==false){

System.out.println(year+"년은 평년입니다!!");

}

}//main

}//class end