1~10까지 정수 출력

int n;

n=0;

 

while(n<10) {

n++;

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

}

n이 0~9까지 10번이 실행됨.

System.out.println();

System.out.println(n);

 

9가 들어가면 n의 값은 10이된다.따라서 while이 false가 되므로 아예 실행하지 않기 때문에

마지막에 들어가는 10은 따로 출력한다. 

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0707_Ex04_while : 1~10까지의 합  (0) 2021.07.07
0707_Ex03_while :1~10까지 더한 값 구하기  (0) 2021.07.07
0707_이전시간 복습  (0) 2021.07.07
0707_Ex01_switch  (0) 2021.07.07
0706_Ex06_switch  (0) 2021.07.07

제어문
if 문
단순 if 문
if 다음의 조건이 참일 경우, 특정 문장을 수행하고자 할 때 사용되는 문장.
if(조건) {
문장1;
}

if(조건){
문장1;
} else {
문장2;

문장3;

다중 선택 if문(else if문)
if 문의 처음 조건식이 거짓일 경우 계속된 다른 범위의 값을 추출하기 위해 else 쪽에 if문을 두는 제어 구조
if(조건){
문장1;
} else if {
문장2;
} else {
 문장3;
}

switch ~ case문
정수와 관련된 자료형 byte, short, char, int, (long형 제외)만 사용할 수 있다.
case 다음의 값으로 변수나 수식을 불가능하며 리터널(상수)만 가능

switch(변수 또는 수식) {
case 상수 : 문장1; break;
case 상수 : 문장2; break;
case 상수 : 문장3; break;
default : 문장4; 
}

switch (n) {

case 3 : System.out.print("*");

case 2 : System.out.print("#");

case 1 : System.out.print("$");

default : System.out.print("입력오류"); 

}

입력받은 n 이 3이면 *#$를 출력

2이면 #$를 출력 

1이면 $를 출력

다른 값들은 입력오류 를 출력한다.

3이면 3, 2, 1을 실행

아니면 2인지확인하고 2이면 2, 1을 실행 ... 이런식으로 진행된다. 

 

switch (n) {

case 3 : System.out.print("*"); break;

case 2 : System.out.print("#"); break;

case 1 : System.out.print("$"); break;

default : System.out.print("입력오류"); break;

}

break;가 있으면 3이면 3만 실행.

string s;

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

 s = "6의 배수";

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

s = "2의 배수";

} else if (n%3==0) {

s = "3의 배수";

} else {

s = "2또는 3의 배수가 아닙니다.";

}

 

위는 내가 이것저것 해보려고 시도해본 것들.

 

입력 받은 정수의 홀짝 구분.

if(n%2==1) {

s = "홀수";

}

System.out.println(n + " : " + s);

이면 컴파일 오류인데 s가 초기화 되어있지 않기 때문이다.

 s 의 초기값이 없기때문에 무엇이 있는지 모르고 실행되기에 컴파일 오류이다.

따라서 

s = "짝수"; 처럼 초기화시킨 후에

if 문을 써야함.

 

 

2로 나눴을 때 나머지가 1이면 홀수이다.

if(n%2==1) {

s = "홀수";

}

 

2로 나눈 나머지가 0이면 짝수이다. 그렇지 않으면 홀수임.

if(n%2==) {

s = "짝수";

} else {

s = "홀수";

}

System.out.println(n+ " : " + s);

 

왜 여기에서는 s의 값이 초기화 되지 않았는데 컴파일 오류가 아닌 것인가??

>첫 번째는 아닌 경우에는 값이 정해지지 않음.

  두 번째는 어쨌든 값이 정해짐. 

0702 복습

\r : 동일행의 선두로 이동
\uhhhh : 16진수 유니코드 문자. (8진수는 숫자3개)
'A' : 65 \u0041
'Z': 90
'a' : 97
'0' : 48
'9' : 57

문자열 : String  

산술연산의 기본형은 int형으로 변환하여 연산함.
따라서 byte, short,char는 int로 변환해서 연산한다. (따라서 속도가 조금 느려진다.) 
상수는 상관 없음.
피 연산자가 float형 또는 double형에서도 %연산자를 사용 할 수 있다. (C언어는 불가)
피 연산자의 자료 형이 다른 경우 큰 타입으로 변환 되어 연산된다.
ex ) int형 + long 형 = 변환 long형 + long형 => 결과 long형

 

0705 복습

 

++a;
a++; 
1증가이지만 위치에 따라 차이가 있음.
자료 형을 유지 시키면서 연산을 수행한다.

관계연산자 
>, >=, <, <= 결과는 true 아니면 false이다.
동등 연산자
==, != 결과는 true 아니면 false이다.

논리연산자
&&. ||
논리 부정 연산자
!
비트단위 연산자&, |, ^, ~ 실수단위에서는 불가능하다. 정수형에서 가능.
>>(부호로 채움), >>>(0으로 채움), 나눗셈 연산 << 곱셈응용 shift 연산이 있다.
대입 연산자
= 우변에있는 내용을 좌변으로 대입
배정 연산자
+=, -=, *=./-,... 형 변환이 일어나지 않고 자료 형이 유지.
조건 연산자
조건 = 조건식? 참일때 값 : 거짓일때 값;

int a = 12;
int b = 6;
int c;

c = ~b;
System.out.println("~6:"+c);

/*

0000 0000 0000 0000 0000 0000 0000 0110  (길어서 0000 0110 라고하겠음)

1111 1111 1111 1111 1111 1111 1111 1001 이게 c의 값이다.

이것은 2의 보수로 저장되어있는 음수 # 임. 근데 #을 모르니까 다시 2의 보수를 취한다.

0000 0000 0000 0000 0000 0000 0000 0111 이다. 

즉 

~6:-7 이다.

*/

 


c = a&b;
System.out.println(c);

/*

& 연산자가 한 개만 사용 되었으므로 비트연산자이다.

1100

0110 을 AND 연산하면 

0100 이다. 따라서 4.
*/


c = a|b;
System.out.println(c);

/*

| 연산자가 한 개만 사용되었으므로 비트연산자.

1100

0110 을 OR연산하면

1110 이다. 따라서 14.

*/


c = a^b;
System.out.println(c);

/*

^연산은 XOR연산.

1100

0110 을 XOR연산하면. 

1010 이다. 따라서 10.

*/

a = 13;
b = a & 1;
System.out.println(b);

/*

1101

0001 AND 

0001 따라서 1.

*/

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0705_Ex12_Bit  (0) 2021.07.06
0705_Ex11_Bit  (0) 2021.07.06
0705_Ex09_Logical  (0) 2021.07.05
0705_Ex08_Logical  (0) 2021.07.05
0705_Ex07_Logical  (0) 2021.07.05

원의 넓이는 = 반지름*반지름*3.141592...

원의 둘레는 = 반지금*2*3.141592...

실수형 표현을 위해 double로 자료형을 줘야한다.

'쌍용강북교육센터 > 7월' 카테고리의 다른 글

0705_Ex06_Relational  (0) 2021.07.05
0705_Ex05_Operator  (0) 2021.07.05
0705_Ex03_Rect : 가로와 세로를 입력 받아 직사각형 넓이와 둘레 계산  (0) 2021.07.05
0705_Ex02_String  (0) 2021.07.05
0705_Ex01_Operator  (0) 2021.07.05

+ Recent posts