Java programming

(22.10.04)JAVA ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ๋ถ„๊ธฐ๋ฌธ๊ณผ ๋ฐ˜๋ณต๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋จธ ์˜ค์›” 2022. 10. 4.

๋ฌด์ž‘์œ„ ์ •์ˆ˜ (0~5)๋ฅผ ํ•œ๊ฐœ ์ถ”์ถœํ•˜์—ฌ ๊ทธ ์ˆ˜๊ฐ€ 0,1์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋งŒ '์œ ํšจํ•œ ์ˆ˜'๋ผ๊ณ  ํ‘œ์‹œํ•˜๊ณ  ๊ทธ ์™ธ์—๋Š” ๋ชจ๋‘ '๋ฌดํšจํ•œ ์ˆ˜'๋ผ๊ณ  ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ œ์ผ ๋จผ์ € Random ํด๋ž˜์Šค์˜ ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค, instance)๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.  (heap์ด๋ผ๋Š” ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค.)

Random num2 = new Random(); // ์—ฐ์‚ฐ์ž๋Š” ๋ฌด์–ธ๊ฐˆ ๋ฐ˜๋“œ์‹œ ๋ฆฌํ„ดํ•œ๋‹ค. new๋„ ์—ฐ์‚ฐ์ž์ด๋‹ค.
// new ๋ผ๋Š” ์—ฐ์‚ฐ์ž๋Š” ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์ธ์Šคํ„ด์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ(=์ฃผ์†Œ)๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.
//= ํ• ๋‹น์—ฐ์‚ฐ์ž๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ๋‚ด์šฉ์„ ์™ผ์ชฝ์— ๊ธฐ์–ต์‹œ์ผœ๋ผ.
// new Random(); ์˜ ๊ฐ’์ด ์ฐธ์กฐํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐํ˜•์— ๊ธฐ์–ต์‹œ์ผœ์•ผํ•œ๋‹ค. ์—ฌ๊ธฐ์„  Random์ด๋ผ ๋˜‘๊ฐ™์ด Random์„ ์“ด๋‹ค.
int num3 = num2.nextInt(6); //(.nextInt ๋Š” bound๋ฅผ ๋ฐ›์•„์„œ ์ •์ˆ˜๋กœ ๊ธฐ์–ตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.)
String str = (num3==0 || num3==1) ? "๋ฌดํšจํ•œ ์ˆ˜" : "์œ ํšจํ•œ ์ˆ˜"; //(?์™ผ์ชฝ์—” ํ•ญ์ƒ ๋ฌด์กฐ๊ฑด boolean ๊ฐ’์ด ์™€์•ผํ•œ๋‹ค.
//(num3==0 || num3==1) ? "๋ฌดํšจํ•œ ์ˆ˜" : "์œ ํšจํ•œ ์ˆ˜"; ์ด ์ „์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— Str ํƒ€์ž…์— ์ €์žฅํ•ด์•ผํ•œ๋‹ค.
System.out.println(str + num3);
 
์ฝ˜์†”๊ฐ’ : ์œ ํšจํ•œ ์ˆ˜5
๋‹ค๋ฅธ ๋ฐฉ์‹ ํ’€์ด๋ฒ• &&์—ฐ์‚ฐ์ž๋ฅผ ์จ์„œ ํ‘ธ๋Š” ๋ฒ•

Random num2 = new Random();

int num4 = num2.nextInt(6);

String str2 = (num4!=0 && num4!=1) ? "์œ ํšจํ•œ ์ˆ˜" : "๋ฌดํšจํ•œ ์ˆ˜";

System.out.println(str2 + num4);

 


* ์ฆ๊ฐ์—ฐ์‚ฐ์ž (์ฆ๊ฐ€, ๊ฐ์†Œ ์—ฐ์‚ฐ์ž) 

์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž (Increment Operator) : ++

int num = 0;
num++; //++ ์€ 1์„ ์ฆ๊ฐ€ํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ทธ๋Œ€๋กœ์— ๊ธฐ์–ต์‹œํ‚จ๋‹ค. ํ›„์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž(post increment Operator)
System.out.println(num++); //๊ฒฐ๊ณผ๊ฐ€ 1์ด ๋‚˜์˜ค๋Š” ์ด์œ ๋Š” ์ถœ๋ ฅ ํ›„์— ์ฆ๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด ์—†๋‹ค.
System.out.println(num); //์œ„ ๊ฒฐ๊ณผ ๋•Œ๋ฌธ์— ์ด ๋ผ์ธ์˜ ๊ฐ’์€ 2๊ฐ€ ๋‚˜์˜จ๋‹ค.

System.out.println(++num); // ์ „์ฆ๊ฐ€ ์—ฐ์‚ฐ์ž(Pre increment Operator) ์ฆ๊ฐ€ํ•œ ํ›„์— ๊ฐ’์ด ์ถœ๋ ฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— 3์ด ๋‚˜์˜จ๋‹ค. ์œ„์— num์— +1

 

์ฝ˜์†”๊ฐ’ :

1

2

3


ํ‚ค๋ณด๋“œ์—์„œ ์ž„์˜์˜ ์ •์ˆ˜ (2~9)๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ•ด๋‹น ์ˆ˜์˜ ๊ตฌ๊ตฌ๋‹จ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ด๋ณด์‹œ์˜ค
์ด๋•Œ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ ์‹œํ‚ฌ๋•Œ ์ฆ๊ฐ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•ด ๋ณด์„ธ์š”.
		Scanner scan = new Scanner(System.in);
		System.out.print("์ˆซ์ž์ž…๋ ฅ:");
		String input = scan.nextLine();
		int x = Integer.parseInt(input);
		int c = 1;
		int v = (x * c);
		System.out.println(v);
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
		System.out.println(v * (++c));
 
์ฝ˜์†”๊ฐ’: ์ˆซ์ž์ž…๋ ฅ:6
6
12
18
24
30
36
42
48
54

๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์–ด ๋ณธ๋‹ค๋ฉด

		Scanner scan = new Scanner(System.in);
		System.out.print("2~9 ์‚ฌ์ด ์ˆซ์ž ์ž…๋ ฅ:");
		String input = scan.nextLine();
		int x = Integer.parseInt(input);
		int c = 1;
		String format = "%d * %d = %d \n";
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));
		System.out.printf(format, x, c, x*(c++));

 

์ œ์–ด๋ฌธ (control statements)
๋ถ„๊ธฐ๋ฌธ์€ if๋ฌธ, switch๋ฌธ
๋ฐ˜๋ณต๋ฌธ์€ while๋ฌธ, do~while๋ฌธ, for๋ฌธ
์ด์™ธ์— continueans, break๋ฌธ
 
if(3<5) // ๊ฐ€๋กœ์•ˆ์—” boolean ํ‘œํ˜„์‹์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.
{
//์กฐ๊ฑด์ด ture์ผ ๋•Œ๋งŒ ํ•œ๋ฒˆ ์‹คํ–‰๋˜๋Š” ์˜์—ญ

}

 

ํ‚ค๋ณด๋“œ์—์„œ ์•„์ด๋””, ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์•„์ด๋””๊ฐ€ smith, ์•”ํ˜ธ๊ฐ€ 1111์ด๋ผ๋ฉด '๋กœ๊ทธ์ธ ์„ฑ๊ณต'ํ‘œ์‹œ ์•„๋‹ˆ๋ฉด '๋กœ๊ทธ์ธ ์‹คํŒจ' ํ‘œ์‹œ

๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ์“ฐ๊ธฐ

String[] uinput = line.split(" "); //[ ] ์œผ๋กœ ํ•œ๋ฐ ๋ฌถ์€ ๋ฌธ์ž์—ด์„ ๋‘๊ฐœ๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ๋œป์ด๋‹ค (" "์‚ฌ์ด์— ์ŠคํŽ˜์ด์Šค๋ฐ” ์œ ์˜ํ•˜๊ธฐ)
String uid = uinput[0];             //[0]์€ ๋‚˜๋ˆˆ ๊ฒƒ์˜ ์ฒซ๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ๋งํ•˜๋Š” ๊ฒƒ์ด๊ณ 
String upw = uinput[1];           //[1]์€ ๋‚˜๋ˆˆ ๊ฒƒ์˜ ๋‘๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
 

๋ฉ”์†Œ๋“œ ๋งŒ๋“œ๋Š” ๋ฒ•

public static void main(String[] args) 

{

elseif();                                                 //๋ฉ”์ธ ๋ฉ”์†Œ๋“œ ์•ˆ์— elseif ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ(์ฝœ)

}

public static void elseif()                      //๋ฉ”์ธ ๋ฉ”์†Œ๋“œ์— ํ˜ธ์ถœ์„ ํ•ด์•ผ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

{

 

}

if๋ฌธ์„ ์จ์„œ ์š”์ผ ๋‚˜์˜ค๊ฒŒ ํ•˜๊ธฐ
		Calendar c = Calendar.getInstance();
		int year = c.get(c.YEAR);
		int month = c.get(c.MONTH);
		int day = c.get(c.DAY_OF_MONTH)+1;
		int dow = c.get(c.DAY_OF_WEEK);
		
		String sDow = null;
		if(dow==1) sDow = ("์ผ");
		else if(dow==2)sDow = ("์›”");
		else if(dow==3)sDow = ("ํ™”");
		else if(dow==4)sDow = ("์ˆ˜");
		else if(dow==5)sDow = ("๋ชฉ");
		else if(dow==6)sDow = ("๊ธˆ");
		else if(dow==7)sDow = ("ํ† ");
		else sDow = "์š”์ผ ์˜ค๋ฅ˜";
		
		System.out.println(year+"๋…„");
		System.out.println(month+"์›”");
		System.out.println(day+"์ผ");
		System.out.println(sDow +"์š”์ผ");
 
์ฝ˜์†” ๊ฐ’:
2022๋…„
10์›”
4์ผ
ํ™”์š”์ผ

 
//์ค‘์ฒฉ if๋ฌธ
//์˜ค๋Š˜์ด ํ‰์ผ, ์ฃผ๋ง์ธ์ง€ ํ™•์ธํ•˜์—ฌ
//ํ‰์ผ์ด๋ฉด ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ๋žŒ์ด ๋‚จ์ž์ธ์ง€ ์—ฌ์ž์ธ์ง€ ํ™•์ธํ•˜์—ฌ ๋‚จ์ž์—๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต
//์ฃผ๋ง์ด๋ฉด 20๋Œ€์ธ์ง€ 30๋Œ€์ธ์ง€ ํ™•์ธํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋ คํ•œ๋‹ค.
 
		Calendar c = Calendar.getInstance();
		int dow = c.get(c.DAY_OF_WEEK);
		if(dow==1 || dow==7) 
		{
			Scanner age = new Scanner(System.in);
			System.out.println("20๋Œ€๋ฉด 2, 30๋Œ€๋ฉด 3์„ 40๋Œ€๋ฉด 4 50๋Œ€๋ฉด 5๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
			String agag = age.nextLine();
			if(agag.equals("2") || agag.equals("3"))
			{
				System.out.println("์„œ๋น„์Šค ์ œ๊ณต");
			}
			else
			{
				System.out.println("์„œ๋น„์Šค ์ œ๊ณต์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.");
			}
		}
		else 
		{
			Scanner gender = new Scanner(System.in);
			System.out.println("๋‚จ์ž๋ฉด m์„ ์—ฌ์ž๋ฉดf๋ฅผ ์ ์–ด์ฃผ์„ธ์š”.");
			String gdgd = gender.nextLine();
			if(gdgd.equals("m"))
			{
				System.out.println("์„œ๋น„์Šค ์ œ๊ณต");
			}
			else
			{
				System.out.println("์„œ๋น„์Šค ์ œ๊ณต์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.");
			}
		}

switch๋ฌธ์„ ์จ์„œ ์š”์ผ ์ถ”์ถœํ•˜๊ธฐ

 

switch(dow)๋Š” case์˜ ์‹œ์ž‘์ ์„ ์•Œ๋ ค์ค€๋‹ค. break๋ฌธ์„ ์•ˆ์“ฐ๋ฉด ๊ฒฐ๊ตญ ๋๊นŒ์ง€ ๊ฐ„๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ์˜ค๋Š˜์ด ํ™”์š”์ผ์ด๊ธฐ๋•Œ๋ฌธ์— dow๋Š” 3์ด๊ณ  switch๋ฌธ์€ case3๋ถ€ํ„ฐ ์‹œ์ž‘๋œ๋‹ค. ๊ทผ๋ฐ break๊ฐ€ ์—†๊ธฐ๋•Œ๋ฌธ์— case3๋ถ€ํ„ฐ ๊ฒฐ๊ตญ์—” default๊นŒ์ง€ ๊ฐ€์—ฌ ์ฝ˜์†”๊ฐ’์— ์ €๋ ‡๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋œ๋‹ค ๊ทธ๋ž˜์„œ break๋ฌธ์„ ์จ์•ผํ•œ๋‹ค.

๋งˆ์ง€๋ง‰default๋Š” ๋งˆ์ง€๋ง‰์ด๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ dreak๊ฐ€ ํ•„์š” ์—†๋‹ค.

break๋ฌธ์„ ๋„ฃ์–ด ์ˆ˜์ •ํ•˜๋‹ˆ ์ •ํ™•ํ•˜๊ฒŒ ๋‚˜์˜จ๋‹ค.

 


 
ํ‚ค๋ณด๋“œ์—์„œ ์ˆซ์ž(1~10)๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ํ•ด๋‹น ์ˆ˜๋ถ€ํ„ฐ 10๊นŒ์ง€ ํ•ฉ์‚ฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•ด ๋ณด์‹œ์˜ค
์ถœ๋ ฅ์˜ˆ์‹œ : 5, 5~10๊นŒ์ง€ ํ•ฉ์‚ฐ=?
Scanner num = new Scanner(System.in);
		System.out.println("์ˆซ์ž๋ฅผ 1 ~ 10 ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์ ์œผ์‹œ์˜ค");
		int x = num.nextInt();
		int sum = 0;
		switch(x)
		{
			case 1: sum= sum + 1;
			case 2: sum= sum + 2;
			case 3: sum= sum + 3;
			case 4: sum= sum + 4;
			case 5: sum= sum + 5;
			case 6: sum= sum + 6;
			case 7: sum= sum + 7;
			case 8: sum= sum + 8;
			case 9: sum= sum + 9;
			case 10: sum= sum + 10;
		System.out.printf( "%d , %d ~ 10๊นŒ์ง€ ํ•ฉ์‚ฐ์€ %d์ž…๋‹ˆ๋‹ค. \n", x, x, sum);
				
		}

์ฝ˜์†” ๊ฐ’:

์ˆซ์ž๋ฅผ 1 ~ 10 ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์ ์œผ์‹œ์˜ค
6
6 , 6 ~ 10๊นŒ์ง€ ํ•ฉ์‚ฐ์€ 40์ž…๋‹ˆ๋‹ค. 

 


while ๋ฐ˜๋ณต๋ฌธ

while()              // ( ) ์•ˆ์—๋Š” true์™€ false ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” boolean ํ‘œํ˜„์‹๋งŒ์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

{

      (์‹คํ–‰๋ฌธ)

}

//( ) ๊ฐ’์ด true ํ•œ ๊ณ„์† ์‹คํ–‰๋ฌธ์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

		int n = 0;
		while(n<10)
		{
			System.out.println(n++);
		}
		System.out.println("์‹œ์Šคํ…œ ์ข…๋ฃŒ");
	}

์ฝ˜์†” ๊ฐ’:

1
2
3
4
5
6
7
8
9
์‹œ์Šคํ…œ ์ข…๋ฃŒ


while ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ๋”ํ•ด์„œ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ด ๋ณด์„ธ์š”.

		int n = 1;
		int sum = 0;
		while(n <= 10)
		{
			//sum = sum + n++;
			sum += n++;	
		}
		System.out.println(sum);

์ฝ˜์†” ๊ฐ’: 55


while ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ 1~20 ์‚ฌ์ด์˜ ์ •์ˆ˜ ์ค‘์—์„œ ์ง์ˆ˜๋งŒ ์„ ํƒ์ ์œผ๋กœ ํ‘œ์‹œํ•ด๋ณด์„ธ์š”.

		int n = 2;
		int x = 1;
		while(x <=10)
		{
			System.out.println((x++)*n);
		}

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

		int n = 1;
		while(n<=20)
		{
			if( n%2==0 )
			{System.out.println(n+" ");	
			}
			n++;
		}

์ฝ˜์†” ๊ฐ’:

2

4

6

8

10

12

14

26

18

20


while ๋ฌธ์„ ์ด์šฉํ•˜์—ฌ  1~5 ์‚ฌ์ด์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„์„œ ํŒฉํ† ๋ฆฌ์–ผ ๊ฐ’์„ ๊ตฌํ•˜์„ธ์š”.

		Scanner num = new Scanner(System.in);
		System.out.println("์ˆซ์ž๋ฅผ 1 ~ 5 ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์ ์œผ์‹œ์˜ค");
		int x = num.nextInt();
		int origin = x;
		int res = 1;
		while(x>0)
		{
			res*=x;
			x--;        //x -= 1;(๊ฐ™์€ ํ‘œํ˜„)
		}
		System.out.printf("%d!์€ %d์ด๋‹ค \n", origin, res);

์ฝ˜์†” ๊ฐ’:

์ˆซ์ž๋ฅผ 1 ~ 5 ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ ์ ์œผ์‹œ์˜ค
5
5!์€ 120์ด๋‹ค 


ํ‚ค๋ณด๋“œ์—์„œ ๊ตฌ๊ตฌ๋‹จ ๋‹จ์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ  ํ•ด๋‹น ์ˆ˜์˜ ๊ตฌ๊ตฌ๋‹จ์ด ํ‘œ์‹œ ๋˜๋„๋ก ํ•œ๋‹ค.

		Scanner num = new Scanner(System.in);
		System.out.println("๊ตฌ๊ตฌ๋‹จ ๋‹จ์ˆ˜๋ฅผ ์ ์œผ์‹œ์˜ค");
		int x = num.nextInt();
		int origin = x;
		int y = 1;
		while (y<10)
		{
			System.out.printf("%d * %d = %d \n", origin, y, x*y);
			y++;
		}

์ฝ˜์†” ๊ฐ’:

๊ตฌ๊ตฌ๋‹จ ๋‹จ์ˆ˜๋ฅผ ์ ์œผ์‹œ์˜ค
5
5 * 1 = 5 
5 * 2 = 10 
5 * 3 = 15 
5 * 4 = 20 
5 * 5 = 25 
5 * 6 = 30 
5 * 7 = 35 
5 * 8 = 40 
5 * 9 = 45 

 

 

์‹ค์ œ ์ฝ”๋”ฉ์—์„œ ๋” ๋งŽ์ด ์“ฐ๋Š” ๋ฐฉ๋ฒ•

		Scanner num = new Scanner(System.in);
		System.out.println("๊ตฌ๊ตฌ๋‹จ ๋‹จ์ˆ˜๋ฅผ ์ ์œผ์‹œ์˜ค");
		int x = num.nextInt();
		int origin = x;
		int y = 1;
		while (y<10)
		{
			String gugu = String.format("%d * %d = %d \n", origin, y, x*y);
			System.out.printf(gugu);
			y++;
		}

 

๋Œ“๊ธ€