예제 2-1 : Hello, 자바 프로그램의 기본 구조
package chap02;
//예제 2-1 : Hello, 자바 프로그램의 기본 구조
public class Hello { //Hello 이름의 클래스 선언, public이므로 다른 패키지에서도 접근 가능
public static int sum(int n, int m) { //정수 n과 m을 매개변수로 하는 메서드 sum선언
//public=공개 static=정적 메서드 의미
return n+m; //리턴값은 매개변수 n과 m을 더한 값
}
//main() 메소드 선언
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=20; //정수형 변수 i선언과 동시에 정수 20의 값 저장
int s; //정수형 변수 s 선언
char a; //문자열 a변수 선언
s=sum(i,10); //sum()메소드 호출, 앞서 선언된 i=20을 통해 20+10=30의 값 출력
a='?'; //a변수에 '?'문자열 저장
System.out.println(a); //문자 '?'화면 출력
System.out.println("Hello"); // Hello 문자열 화면 출력
System.out.println(s);//정수 s 값 화면 출력
}
}
예제 2-2 : var 키워드를 사용하여 변수 선언
package chap02;
public class Var {//Var라는 이름의 클래스 선언, public이므로 다른 패키지에서도 접근 가능
//main메서드 선언
public static void main(String[] args) {
////public=공개 static=정적 메서드 의미
// TODO Auto-generated method stub
var price=200; //price는 int 타입으로 지정
var name="kitae";//name은 String 타입으로 결정
var pi=3.14; // pi는 double 타입으로 결정
System.out.println("price="+(price+1000)); //기존에 저장된 price(200)과 1000을 더한 연산의 값 출력, 출력은 문자열 형태
System.out.println("name="+name); //name에 저장된 String문자열(kitae) 출력, 출력은 문자열 형태
System.out.println("pi="+pi*10);//pi에 저장되었던 3.14*10의 결과(31.4) 출력, 출력은 문자열 형태
}
}
//출력결과
price=1200
name=kitae
pi=31.4
예제 2-3 : 변수, 리터럴, 상수 사용하기
문제: 원의 면적을 계산하여 출력하는 프로그램을 작성하라
package chap02;
//원의 면적을 계산하여 출력하는 프로그램을 작성하라
public class CircleArea { //CircleArea 이름의 클래스 선언
//main()메서드 선언
public static void main(String[] args) {
// TODO Auto-generated method stub
final double PI=3.14; //final로 상수 지정, double형의 실수형 상수 PI 선언과 동시에 3.14 값 저장
double radius=10.2; // 실수형의 반지름(radius)선언과 동시에 10.2 값 저장
double circleArea=radius*radius*PI; //실수형의 원의 넓이(circleArea)선언과 동시에 위 라인에서 PI와 radius에서 저장한 값을 토대로 반지름*반지름*원주율 값 저장
System.out.print("반지름"+radius+","); //radius에 저장된 값 출력, 출력은 문자열 형태
System.out.println("원의 면적="+circleArea); // circleArea에 저장된 값 출력, 출력은 문자열 형태
}
}
//출력결과
반지름 10.2, 원의 면적 = 326.68559999999997
예제 2-4: 타입 변환
문제: 자동 타입 변환과 강제 타입 변환이 들어 있는 코드다. 실행 결과는 무엇인가?
package chap02;
public class TypeConversion {
//예제 2-4 타입변환
public static void main(String[] args) {
byte b=127;
int i=100;
System.out.println(b+i); //b가 int 타입으로 자동 변환
System.out.println(10/4); //10을 4로 나눈 몫
System.out.println(10.0/4); //4가 4.0으로 자동 변환
System.out.println((char)0x12340041); //0x로 시작한 16진수 데이터에서 char형으로 캐스팅 되고있다. char형은 2바이트, 해당 데이터의 하위 2바이트 까지만 읽을수 있으므로 0041의 아스키 코드 값 65는 문자 A
System.out.println((byte)(b+i)); //해당 데이터는 int형으로 저장되지만 byte로 캐스팅 되므로 손실되는 부분을 제외한 값 -29
System.out.println((int)2.9 + 1.8); //2.9만 정수형 변환(0.9 소거됨)한 값 2와 1.8의 합 = 2+1.8 = 3.8
System.out.println((int)(2.9 + 1.8)); // (2.9+1.8) = 4.8을 정수형으로 변환한 값 4
System.out.println((int)2.9 + (int)1.8); // 2.9를 정수형으로 변환한 값 2 + 1.8을 정수형으로 변환한 값 1 = 3
}
}
//출력결과
227
2
2.5
A
-29
3.8
4
3
2-5 : Scanner를 이용한 키 입력 연습
문제: Scanner를 이용하여 이름, 도시, 나이, 체중, 독신 여부를 입력받고 다시 출력하는 프로그램을 작성하라.
package chap02;
import java.util.Scanner;
public class ScannerEx {
public static void main(String[] args) {
System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요.");
Scanner scanner = new Scanner(System.in);
String name= scanner.next();
System.out.println("당신의 이름은 "+name+"입니다.");
String city=scanner.next();
System.out.println("당신이 사는 도시는 "+city+"입니다.");
int age=scanner.nextInt();
System.out.println("당신의 나이는 "+age+"살입니다.");
double weight=scanner.nextDouble(); //실수 토큰 읽기
System.out.println("당신의 체중은 "+weight+"kg입니다.");
boolean single=scanner.nextBoolean();
System.out.println("당신은 독신 여부는 "+single+"입니다.");
//출력란에 공백 있는지 없는지 여부가 오류결과를 달라지게 함. -> 블로그 포스팅해보기
scanner.close();
}
}
//출력결과
이름, 도시, 나이, 체중, 독신여부를빈칸으로분리하여입력하세요.
Kim Seoul 20 65.1 true
당신의 이름은 Kim입니다.
당신이 사는 도시는 Seoul입니다.
당신의 나이는 20살입니다.
당신의 체중은 65.1kg입니다.
당신은 독신 여부는 true입니다.
예제 2-6 : /와 % 산술 연산자 응용
문제: 초 단위의 정수를 입력 받고, 몇 시간, 몇 분, 몇 초인지 구하여 출력하는 프로그램을 작성하라.
package chap02;
import java.util.Scanner;
public class ArithmeticOperator {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("정수를 입력하세요:");
int time=scanner.nextInt(); //정수입력
int second=time%60; //60으로 나눈 나머지는 초
int minute=(time/60) % 60; //60으로 나눈 몫을 다시 60으로 나눈 나머지는 분
int hour=(time/60)/60; //60으로 나눈 몫을 다시 60으로 나눈 몫은 시간
System.out.print(time+"초는 ");
System.out.print(hour+"시간, ");
System.out.print(minute+"분, ");
System.out.println(second+"초입니다.");
scanner.close();
}
}
//출력결과
정수를 입력하세요:4000
4000초는 1시간, 6분, 40초입니다.
예제 2-7 : 대입 연산자와 증감 연산자 사용하기
문제: 다음 코드의 실행 결과는 무엇인가?
package chap02;
public class AssignmentIncDecOperator {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=3, b=3,c=3;
//대입 연산자 사례
a+=3; //a=a+3 = 6
b*=3; //b=b*3 = 9
c%=2; //c=c%2=1
System.out.println("a="+a+", b="+b+", c="+c);
int d=3;
// 증감 연산자 사례
a=d++; //a=3,d=4
System.out.println("a="+a+", d="+d);
a=++d; //d=5, a=5
System.out.println("a="+a+", d="+d);
a=d--; //a=5, d=4
System.out.println("a="+a+", d="+d);
a=--d; //d=3, a=3
System.out.println("a="+a+", d="+d);
}
}
//출력결과
a=6, b=9, c=1
a=3, d=4
a=5, d=5
a=5, d=4
a=3, d=3
예제 2-8 : 비교 연산자와 논리 연산자 이용하기
문제: 다음 코드의 실행 결과는 무엇인가?
package chap02;
public class LogicalOperator {
//예제 2-8
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println('a'>'b');
System.out.println(3>=2);
System.out.println(-1<0);
System.out.println(3.45 <= 2);
System.out.println(3==2);
System.out.println(3 !=2);
System.out.println(!(3!=2));
System.out.println((3>2)&&(3>4));
System.out.println((3!=2)||(-1>0));
System.out.println((3!=2)^(-1>0));
}
}
//출력결과
false
true
true
false
false
true
false
false
true
true
예제 2-9 : 조건 연산자 사용하기
문제: 다음 코드의 실행 결과는 무엇인가?
package chap02;
public class TernaryOperator {
//예제 2-9
public static void main(String[] args) {
int a=3, b=5;
System.out.println("두 수의 차는 "+((a>b)?(a-b):(b-a)));
}
}
//출력결과
두 수의 차는 2
예제 2-10 : 비트연산자와 시프트 연산자 사용하기
생략
예제 2-11 : if-else 사용하기
문제: 나이를 입력받아 20대인지 판별하는 프로그램을 작성하라.
package chap02;
import java.util.Scanner;
//예제 2-11
public class Twenties {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("나이를 입력하시오:");
int age=scanner.nextInt();
if((age>=20)&&(age<30)) {
System.out.print("20대입니다. ");
System.out.println("20대라서 행복합니다!");
}
else
System.out.println("20대가 아닙니다.");
scanner.close();
}
}
//출력결과
나이를 입력하시오:23
20대입니다. 20대라서 행복합니다!
예제 2-12 : 다중 if-else를 이용하여 학점 매기기
문제: 다중 if-else문을 이용하여 입력받은 성적에 대해 학점을 부여하는 프로그램을 작성하라.
package chap02;
import java.util.Scanner;
public class Grading {
public static void main(String[] args) {
char grade;
Scanner scanner=new Scanner(System.in);
System.out.println("점수를 입력하세요(0~100):");
int score=scanner.nextInt(); //점수 읽기
if(score >= 90) //score가 90 이상
grade='A';
else if(score >= 80) //score가 80이상 90 미만
grade='B';
else if(score >=70) //score가 70이상 80미만
grade='C';
else if(score>=60) //score가 60이상 70미만
grade='D';
else //score가 60미만
grade='F';
System.out.println("학점은 "+grade+"입니다.");
scanner.close();
}
}
//출력결과
점수를 입력하세요(0~100):89
학점은 B 입니다.
예제 2-13 : 중첩 if-else문 사례
package chap02;
import java.util.Scanner;
public class Nestedlf {
//예제 13
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.println("점수를 입력하세요(0~100):");
int score=scanner.nextInt();
System.out.println("학년을 입력하세요(1~4):");
int year=scanner.nextInt();
if(score>=60) {
if(year!=4)
System.out.println("합격!"); //4학년 아니면 합격
else if(score >= 70)
System.out.println("합격!");
else
System.out.println("불합격!");
}
else
System.out.println("불합격!");
scanner.close();
}
}
//출력결과
점수를 입력하세요(0~100):65
학년을 입력하세요(1~4):4
불합격!
예제 2-14 : switch문 사용하기
문제: 1~12 사이의 월을 입력받아 봄, 여름, 가을, 겨울을 판단하여 출력하라.
package chap02;
import java.util.Scanner;
public class Season {
//예제 2-14
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("월(1~12)을 입력하시오:");
int month=scanner.nextInt(); //정수로 월 입력
switch(month) {
case 3:
case 4:
case 5:
System.out.println("봄입니다.");
break;
case 6: case 7: case 8:
System.out.println("여릉입니다.");
break;
case 9: case 10: case 11:
System.out.println("가을입니다.");
break;
case 12: case 1: case 2:
System.out.println("겨울입니다.");
break;
default:
System.out.println("잘못된 입력입니다.");
}
scanner.close();
}
}
//출력결과
월(1~12)을 입력하시오:3
봄입니다.
'Language > JAVA' 카테고리의 다른 글
[JAVA] 명품 자바 에센셜 예제 4장 (0) | 2021.12.18 |
---|---|
[JAVA] 명품 자바 에센셜 예제 3장 (0) | 2021.12.17 |
[JAVA]MultipartRequest cannot be resoloved (0) | 2021.12.08 |
[JAVA]String cannot be resolved to a type (0) | 2021.11.30 |
[JAVA] 기본 예제, 데이터 타입, 식별자, 상수, 변수 (0) | 2021.09.22 |