6일차 강의 정리


Q1. 2의 제곱 수 중, 최초 1000을 넘는 제곱 수

int cnt=1;

int squ = 2;

while(true){

cnt++;

squ *= 2; //다음제곱수로 증가

if(squ>1000){break;} //1000이 넘는 제곱수이면 break

}

System.out.println("2의 제곱 수 중 최소 1000을 넘는 제곱수 : "+squ+"(2의"+cnt+"승)");

결과

Q2. 1/2+2/3+3/4+...99/100을 계산하는 프로그램

 // (1-1/2)+(1-1/3)+(1-1/4)+....+(1-1/100)

public static void question5(){

double sum=0.0;

for(int i=2;i<101;i++){

sum = sum+(1-1.0/i);

}

System.out.println("결과 : "+sum);

}

결과

Q3. 1부터 시작하여 짝수들의 합을 구하면서 그 합이 500을 넘지않는 마지막 수

int num = 0;

int sum = 0;

while(sum<500){

num++;

if(num%2==0){

sum += num;

}

}

System.out.println("합계 : "+(sum-num)+"\n숫자 : "+(num-2));

결과

Q4.          *

    * * *

  * * * * *

* * * * * * *

for(int i=1;i<5;i++){

for(int j=1;j<5-i;j++){

System.out.print("\t");

}

for(int m=1;m<=i;m++){

System.out.print("*");

System.out.print("\t");

}

for(int m=1;m<=i-1;m++){

System.out.print("*");

System.out.print("\t");

}

for(int j=1;j<5-i;j++){

System.out.print("\t");

}

System.out.println();

}

결과

 


Q5. x=5, y=9, z=3 을 오름차순으로 출력

int x=5;

int y=9;

int z=3;

int tmp;

String result = "x<y<z : ";

if(x>y){

tmp=x;

x=y;

y=tmp;

}

if(x>z){

tmp=x;

x=z;

z=tmp;

}

if(y>z){

tmp=z;

z=y;

y=tmp;

}

System.out.println(result+x+"<"+y+"<"+z);

/*

//다른방법

if(x<y && x<z && y<z){     //x<y<z

System.out.println(x+"<"+y+"<"+z);

}else if(x<y && x<z){ //x<z<y

System.out.println(x+"<"+z+"<"+y);

}else if(y<x && y<z && x<z){ //y<x<z

System.out.println(y+"<"+x+"<"+z);

}else if(y<x && y<z){ //y<z<x

System.out.println(y+"<"+z+"<"+x);

}else if(x<y){ //z<x<y

System.out.println(z+"<"+x+"<"+y);

}else { //z<y<x

System.out.println(z+"<"+y+"<"+x);

*/

결과

'* Programming > JAVA' 카테고리의 다른 글

DAY 7 문제  (0) 2016.07.12
DAY6 random 함수  (0) 2016.07.12
DAY5 기본 메소드  (0) 2016.07.11
DAY4 문제  (0) 2016.07.11
DAY3 조건문 / 반복문  (0) 2016.07.07

5일차 강의 정리


1. 메소드 ( return 값이 없는 경우 )

소스

public class Ex01 {

public static void func1(){

//메소드 start

//메소드: 메소드명(인자){}

System.out.println("메소드1 출력합니다.");

System.out.println("-------------------");

}//func1 end

public static void main(String[] args) {

//main start

String st1="안녕"; //String 변수 선언 및 초기화

func1(); //메소드1 호출

func2(1,2); //메소드2-1 호출

func2(st1,999); //메소드2-2 호출

func2(10,20,30); //메소드2-3 호출

}//main end, 메소드 end


public static void func2(int a,int b){ //메소드 이름 차별화

System.out.println("메소드2-1 출력합니다.");

System.out.println(a+"+"+b+"="+(a+b));

}

public static void func2(String a,int b){ //But 자료형이 다를경우 허용

System.out.println("메소드2-2 출력합니다.");

System.out.println(a+"+"+b+"="+(a+b));

}

public static void func2(int x,int y,int z){         //But 인자의 갯수가 다를경우 허용(->메소드 오버로드)

System.out.println("메소드2-3 출력합니다.");

System.out.println(x+"+"+y+"+"+z+"="+(x+y+z));

}

}//class end

메소드 호출 

main메소드 에서 다른 class 안의 메소드를 호출(func1,func2..)

메소드는 이름을 다르게 써야한다

이름을 같게 쓸경우 ( )안 인자의 자료형이 다르거나 인자의 갯수가 다른경우 허용한다

(단, 인자의 자료형이 아니라 메소드 이름앞의 자료형만 다르게 쓰면 오류처리된다)

이를 메소드 오버로드 라고 한다

결과

2. 메소드 ( return 값이 있는 경우 )

소스

public class Ex02 {

public static void main(String[] args) {

//main start

//메소드를 이용한 계산기 프로그램

int a=5,b=3;

func1(a,b); //덧셈 메소드 호출

func2(a,b); //뺄셈 메소드 호출

int x = func3(a,b); //곱셈 메소드 호출

System.out.println("func3의 수행결과는 "+x);

func4(a,b); //나눗셈 메소드 호출

return; //main이 void인 이유 : return 값이 없기 때문에

}//main end


public static void func1(int a,int b){ //덧셈 메소드

System.out.println(a+"+"+b+"="+(a+b));

return; //void인 경우 생략가능

}

public static void func2(int a,int b){ //뺄셈 메소드

System.out.println(a+"-"+b+"="+(a-b));

}

public static int func3(int a,int b){ //곱셈 메소드(return c의 자료형을 void대신 int로 변경)

int c = a*b;

return c; //c값을 main으로 리턴

}

public static void func4(double a,double b){ //나눗셈 메소드

System.out.println(a+"÷"+b+"="+(a/b));

}

}//class end

return 할 값의 자료형에따라 함수의 자료형을 동일 시 해야한다

현재 예제에서 곱셈 메소드(func3)에서 확인할 수있다

결과

3. args[]를 이용하여 입력 받아 계산하기

소스

public class Ex03 {

/* args 입력을 받아 계산기

* 메소드 사용

* 기능별 (+,-,*,/)

*/

public static void main(String[] args) throws Exception{

//main start

int a = Integer.parseInt(args[0]);       //입력받은 문자열 정수(int)로 변환하며 선언 (첫번째 수)

String b = args[1];                        //연산자는 문자열 그대로 선언(+, -, *, /)

int c = Integer.parseInt(args[2]);       //입력받은 문자열 정수(int)로 변환하며 선언 (두번째 수)

func1(a,b,c); //메소드 호출

}//main end

public static void func1(int a,String b,int c){    //계산할 메소드 func1

int add = a+c;

int sub = a-c;

int mul = a*c;

double div = (double)a/(double)c;

if(b.equals("+")){ //b가 +인 경우

System.out.println(a+"+"+c+"="+add);

}else if(b.equals("-")){

System.out.println(a+"-"+c+"="+sub);

}else if(b.equals("*")){

System.out.println(a+"X"+c+"="+mul);

}else if(b.equals("/")){

System.out.println(a+"÷"+c+"="+div);

}else {

System.out.println("잘못 입력하셨습니다.");

}

/*switch(b){        //switch 문 사용

case "+":

System.out.println(a+b+c+"="+add);

break;

case "-":

System.out.println(a+b+c+"="+sub);

break;

case "*":

System.out.println(a+"X"+c+"="+mul);

break;

case "/":

System.out.println(a+"÷"+c+"="+div);

break;

default:

System.out.println("잘못 입력하셨습니다.");

}*/

}//func1 end

}//class end

계산하는 함수는 if()문 switch()문 두가지 방법을 제시해봤다

10 / 3 입력

띄어쓰기로 구분하여 입력한다

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY6 random 함수  (0) 2016.07.12
DAY6 문제  (0) 2016.07.12
DAY4 문제  (0) 2016.07.11
DAY3 조건문 / 반복문  (0) 2016.07.07
DAY2 변수  (0) 2016.07.06

4일차 강의 정리


Q1.     1 2 3 4 5

   6 7 8 9 10

   11 12 ...20   총합계: ?

소스

int sum1 = 0;

for(int num=1;num<=20;num++){

System.out.print(num+"\t");

if(num%5==0){System.out.println();}

sum1 += num;

}

System.out.println("------------------------------------");

System.out.println("총 합계 : "+sum1);

결과


Q2.    1

          1 2

 1 2 3

 1 2 3 4   총합계: ?  

소스

int sum2=0;

for(int i=1;i<=5;i++){ //세로 방향

for(int j=1;j<i;j++){ //가로 방향

System.out.print(j+"\t");

sum2 += j;

}

System.out.println();

}

System.out.println("------------------------------------");

System.out.println("총 합계 : "+sum2);

결과

Q3.     1

 2 3 

 4 5 6 

 7 8 9 10 총합계: ?

소스

int count=0;

int i=1;

int sum=0;

for(int a=1;a<=10;a++){

System.out.print(a+"\t");

sum += a;

count++;

if(count==i){

System.out.println();

i++;

count=0;

}

}

System.out.println("------------------------------------");

System.out.println("총 합계 : "+sum);

다른소스(합계는 제외)

int i=1;

for(int j=0;j<4;j++){

for(int m=0;m<=j;m++){

System.out.print(i+++"\t");

}

System.out.println();

}

결과

Q4.    *

   * * 

   * * * 

   * * * *

소스

for(int i=1;i<=5;i++){ //세로 방향

for(int j=1;j<i;j++){ //가로 방향

System.out.print("*\t");

}

System.out.println();

}

결과


Q5.    * * * *

 * * *

 * *  

 * 

소스1

for(int j=1;j<=5;j++){ //세로 방향

for(int i=5;i>j;i--){ //가로 방향

System.out.print("*\t");

}

System.out.println();  

}

소스2

int limit =4;

int prn =0;

for(int a=10;a>0;a--){

System.out.print(a); //*을 원할시에 출력값만 변경

prn++;

if(prn==limit){

limit--;

System.out.println();

prn=0;

}

}

소스3

int limit=5;

for(int a=1;a<5;a++){

for(int b=1;b<limit;b++){

System.out.print("*");

}

limit--;

System.out.println();

}

결과

Q6. 1~100까지의 합계

소스

int su=1;

int result=0;

while(su<101){

result += su;

su++;

}

System.out.println("1~100까지의 합 : "+result); //5050

결과

Q7. 1~100까지의 짝수 합계

소스

int su=1;

int result=0;

while(su<101){

if(su%2==0){

result += su;

su++;

}

su++;

}

System.out.println("1~100까지의 짝수의 합 : "+result); //2550

결과

Q8.   * * * *

   * * *

     * *  

       *

소스

for(int j=1;j<=5;j++){ //세로 방향

for(int i=5;i>j;i--){         //가로 방향

System.out.print("*\t");

}

System.out.println();

for(int tmp=0;tmp<j;tmp++){

System.out.print("\t");

}

}

결과


Q9. 1+2+3+4+....+n 이들의 합계가 10이 넘는 최소의 n값

소스

int n=1;

int sum=0;

while(sum<=10){

sum += n;

n++;

}

System.out.println("최소의 n값 : "+(n-1));

결과


'* Programming > JAVA' 카테고리의 다른 글

DAY6 문제  (0) 2016.07.12
DAY5 기본 메소드  (0) 2016.07.11
DAY3 조건문 / 반복문  (0) 2016.07.07
DAY2 변수  (0) 2016.07.06
Day1 JDK설치하기  (0) 2016.07.06

3일차 강의 정리


1.조건문


소스(if 문)

class Ex01{

public static void main(String[] args){

//main start

//조건문 만약(if) ~~이라면

/*

if(조건문(true인 경우 수행)){

~~~수행할 연산

*/


int num1,num2;

num1=322;

num2=271;

if(num1>num2){

System.out.println(num1+"은"+num2+"보다 큽니다.");

}

if(num1<=num2){

System.out.println(num1+"은"+num2+"보다 크지 않습니다.");

}

boolean result = num1>num2;

if(result){

System.out.println(num1+"은"+num2+"보다 큽니다.");

}

if(!(result)){

System.out.println(num1+"은"+num2+"보다 크지 않습니다.");

}

if(num1%2==0){

System.out.println("num1의 결과는 짝수입니다");

}else{ //그렇지않으면

System.out.println("num1의 결과는 홀수입니다");

}

}//main end

}//class end


결과


소스 ( if(){} else if(){} else{} )

class Ex02{

public static void main(String[] args){

//main start

int num1=989;


//방법1

/*if(num1%3==0 && num1%2==0){

System.out.println("3의 배수이고 짝수입니다.");

}

if(num1%3==0 && num1%2!=0){

System.out.println("3의 배수이고 홀수입니다.");

}

if(num1%3!=0 && num1%2==0){

System.out.println("3의 배수가 아니고 짝수입니다.");

}

if(num1%3!=0 && num1%2!=0){

System.out.println("3의 배수가 아니고 홀수입니다.");

}*/

//방법2

/*if(num1%3==0){

System.out.print("3의 배수이고 ");

}else{

System.out.print("3의 배수가 아니고 ");

}

if(num1%2==0){

System.out.println("짝수입니다.");

}else{

System.out.println("홀수입니다.");

}

*/

//방법3

/*if(num1%3==0){

if(num1%2==0){

System.out.println("3의 배수이고 짝수입니다.");

}else{

System.out.println("3의 배수이고 홀수입니다.");

}

}else{

if(num1%2==0){

System.out.println("3의 배수가 아니고 짝수입니다.");

}else{

System.out.println("3의 배수가 아니고 홀수입니다.");

}

}*/

//방법4

String result1="3의 배수이고 짝수입니다.";

String result2="3의 배수이고 홀수입니다.";

String result3="3의 배수가 아니고 짝수입니다.";

String result4="3의 배수가 아니고 홀수입니다.";


if(num1%3==0 && num1%2==0){

System.out.println(result1);

}else if(num1%3==0 && num1%2!=0){

System.out.println(result2);

}else if(num1%2==0){

System.out.println(result3);

}else{

System.out.println(result4);

}

}//main end

}//class end


결과


소스(switch 문)

class Ex04{

public static void main(String[] args){

//main start


//계산기 만들기

//문제 ex) 100-3=97

System.out.println("첫번째 숫자 : "+args[0]);     //첫번째 숫자 입력받기

System.out.println("+, -, *, / : "+args[1]);             //연산자 입력받기

System.out.println("두번째 숫자 : "+args[2]);     //두번째 숫자 입력받기

System.out.println("--------------------------------");

int i = Integer.parseInt(args[0]); //문자열을 정수로 변환(String to int)

int j = Integer.parseInt(args[2]);

int result=1;

double result2=1;

boolean show = true;

/*정수를 문자열로 변환(int to String)

int num = 123;

String st = Integer.toString(num);

*/


switch(args[1]){

case "+":             // +인 경우 수행

result = i+j;

break;        //swich 문 종료

case "-":             // -인 경우 수행

result = i-j;

break;

case "*":             // *인 경우 수행

result = i*j;

break;

case "/":             // /인 경우 수행

result2 = 100*i/j/100.0;

break;

default:             // 모든 경우가 아닌 경우

show=false;

System.out.println("사칙연산을 잘못 입력하셨습니다.");

}

if(show){

if(args[1].equals("/")){

System.out.println(i+"÷"+j+" = "+result2);

}else{

System.out.println(i+args[1]+j+" = "+result);

//System.out.printf("%d %s %d = %d",i,args[1],j,result);

}

}

}//main end

}//class end

switch 문 이용한 계산기 만들기 

args[] 를 이용하여 숫자와 연산자를 입력받아서 

연산자가 무엇인지에 따라 switch문 case로 조건을 만족하는 것에 따라 수행

하단의 if문은 문자열의 비교를 위해 작성한 것으로 args[1] 에 들어가는 문자열과 "/"을 args[1].equals("/") 를 사용하여 비교. 


결과

9 / 3 을 입력 후 실행


2. 반복문


소스(for 문)

class Ex06{

public static void main(String[] args){

//main start

/*for(초기값;조건문;가감식){

~~수행할연산

} */


//세로 구구단

for(int dan=2;dan<10;dan++){

for(int j=1;j<10;j++){

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

}

System.out.println("-------------");

}

//가로 구구단

for(int i=1;i<10;i++){ //세로진행

for(int dan=2;dan<10;dan++){ //가로진행

System.out.print(dan+"X"+i+"="+(i*dan)+"\t");

}

System.out.println();

}

}//main end

}//class end


소스(while 문)

 int dan=2;

int i=1;

//세로구구단

while(dan<10){

while(i<10){

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

i++;

}

System.out.println("-------------");

dan++;

i=1;

}

//가로구구단

while(i<10){

dan=2;

while(dan<10){

System.out.print(dan+"X"+i+"="+dan*i+"\t");

dan++;

}

System.out.println();

i++;

}


결과(for 문 , while 문 동일)

......중략


소스(do{ }while( ) 문)

public static void main(String[] args){

//main start

//do while

/*

do{

~~;

}while(조건);

*/

int num = 9;

System.out.println("start");

do{

System.out.println("실행");

num++;

}while(num<9);


}//main end

do while 문은 do{ 수행할 연산 }이 한번은 무조건 수행후 조건문을 확인


결과


'* Programming > JAVA' 카테고리의 다른 글

DAY6 문제  (0) 2016.07.12
DAY5 기본 메소드  (0) 2016.07.11
DAY4 문제  (0) 2016.07.11
DAY2 변수  (0) 2016.07.06
Day1 JDK설치하기  (0) 2016.07.06
2일차 강의 정리



1. Hello World!!


window 에서 cmd 창 실행

파일 생성 후 notepad 실행

메모장에서 실습


소스

class Ex01 {

public static void main(String[] args){

//main start


System.out.print("Hello World!!");

System.out.print("Hello World!!");

System.out.println();

System.out.println();

System.out.println("Hello World!!");


}//main end

}//class end

print("  "); 에서는 " " 안의 내용 출력 후 다음 소스 실행(줄바꿈 없음)

println("  "); 는 " " 안의 내용 출력 , 줄바꿈 후 다음 소스 실행

println( ); 은 줄바꿈

// 이것은 주석(한줄주석)

/* 이것 또한 주석

(여러줄 주석) */


결과

cmd 창에서 컴파일 후 

결과 출력

파일 이름과  class 이름이 동일 해야 컴파일과 실행이 가능!


2. 자료형


소스1

class Ex02{   

    public static void main(String[] args){

//변수 x=7 y=1 x*y=7

//변수의 선언은

//자료형 변수명;

//자료형

//String - 문자열

//int - 10진수 정수형(byte,short,long)

//double - 10진수 실수형(float)


int a; //변수의 선언

a=7; //변수의 초기화

int b=1;

String c=" x ";    //문자열

System.out.println("-------------");

System.out.println("구구단 7단");

System.out.println("-------------");

System.out.println(a+c+b+"="+a*b);

b=b+1;

System.out.println(a+c+b+"="+a*b);

b=b+1;

System.out.println(a+c+b+"="+a*b);

b=b+1;

System.out.println(a+c+b+"="+a*b);

    }

}

결과1


소스2

  //Escape문자

//\t탭키  \n개행  \r  \\  \'  \"  \b

System.out.print("개행하지\t않음"); //탭으로 띄어쓰기

System.out.println();

System.out.print("아무개 왈:\"개행하지않음\"\n"); //" " 표시하는 방법

System.out.print("\n"); //한줄 띄어쓰기

System.out.print("아무개 왈:\'개행하지않음\ '\n"); //' '표시하는 방법

System.out.println();

System.out.println("-------------------------------");

System.out.println(1+2);

System.out.println(1.0+2+2);

System.out.println("문자열"+2+3);        //문자열+수

System.out.println(3+2+"문자열");        //수+문자열  차이 알기

System.out.println(7/3);

System.out.println(7/3.0);

System.out.println(7*100/3/100.0);        //소숫점 둘째자리까지 출력


결과2


소스3

int kor;

int eng;

int math;

int total;

kor=80;

eng=90;

math=70;

total=kor+eng+math;

System.out.println();

System.out.println("---------------------------------------------");

System.out.println("국어\t영어\t수학\t총점\t평균");

System.out.println(kor+"\t"+eng+"\t"+math+"\t"+total+"\t"+total/3.0);

kor=60;

eng=70;

math=85;

total=kor+eng+math;

System.out.println(kor+"\t"+eng+"\t"+math+"\t"+total+"\t"+total*100/3/100.0);

kor=90;

eng=90;

math=85;

total=kor+eng+math;

System.out.println(kor+"\t"+eng+"\t"+math+"\t"+total+"\t"+total*100/3/100.0);

System.out.println("---------------------------------------------");

boolean a;        //boolean 자료형 알기

a=false;

System.out.println(a);

a=(3+7)==(5+5);

System.out.println("a = "+a);

System.out.println(7>3);

System.out.println(7==3);

결과3

소스4

  boolean tf1=true;

boolean tf2=false;

boolean tf3=true;

boolean tf4=false;

//tf1=3<1;

System.out.println(tf1);


//논리연산자 &&(and), ||(or)

System.out.println(tf1 && tf2);    //and 논리 연산자

System.out.println(tf1 && tf3);    //둘다 참이면 참

System.out.println(tf1 || tf2);        //or 논리 연산자  둘 중에 하나라도 참이면 참

System.out.println(!(tf1));            //not !

String st1="안녕";

String st2=" 자바";

String st3=new String("안녕");

System.out.println(st1+st2);

System.out.println(st1.equals(st3)); //문자열은 == 로 비교하지않고 equals 사용

결과4


'* Programming > JAVA' 카테고리의 다른 글

DAY6 문제  (0) 2016.07.12
DAY5 기본 메소드  (0) 2016.07.11
DAY4 문제  (0) 2016.07.11
DAY3 조건문 / 반복문  (0) 2016.07.07
Day1 JDK설치하기  (0) 2016.07.06

+ Recent posts