728x90
반응형
키보드 입력 System.in → Scanner
※
- Scanner는 값을 입력 받는 기능(함수==Method)을 갖고 있다.
- 파일의 이름은 클래스의 이름과 같아야 한다. (그 기능을 의미하는 이름을 쓰는게 좋다. )
- 메인함수의 이름은? 프로젝트 이름 or Main
- 파스칼 표기법! 메인 클래스를 만든 것임. 프로그램의 시작을 나타내는 메인함수라서
- 함수의 리턴은 그 한 줄에서 끝내야한다.
read와 scanner의 차이점
read라는 기능은 %c와 같은 기능 .즉, 한문자로 받으라는뜻.
입력값을 아스키코드로 바꿔서 해석한다.
입력 | 출력 |
‘A’ | 65 |
‘a’ | 97 |
‘5’ | 53 |
엔터 | 13 |
‘0’ | 48 |
‘0’은 아스키코드 48번이다.
‘0’ 과 0은 다르다.
‘0’-48 = 0
‘1’-48=1
‘5’-48=5
‘A’+32=97
Scanner
하나의 클래스(스캐너)안에
아스키값을 원하는 자료형으로 변환하는 기능(메소드)가 있는 객체를 만듬.
(첫글자가 대문자. 클래스이다. 객체면 소문자로 시작.)
nextInt( ) | |
nextDouble( ) | |
nextBoolean ( ) | |
nextChar( ) | read기능이있어서 한문자는 따로 없다 |
next( ) | 문자열 : %s와 비슷 띄어쓰기 없는거만 가능 |
nextLine ( ) | 문자열 : 한 줄 그대로 쓰는것 |
nextString | 이런건 없음 |
※
생성자함수 : ( )
자바는 반드시 명시적으로 호출문을 써야함
java.lang은 하위폴더라는뜻. (.은 하위폴더를 의미한다. 풀네임이아님)
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
//사용자로부터 2개의 정수를 입력받아 덧셈하는 프로그램
Scanner scan=new Scanner(System.in); //scan은 참조변수이다.
int a,b;
System.out.print("정수 입력: ");
a=scan.nextInt();
System.out.print("정수 입력: ");
b=scan.nextInt();
int c=a+b;
System.out.println( );
System.out.println(a+" + "+b+" = "+c);
// 연산자 - c언어와 동일
//새로 추가된 연산자 [비트연산자 : <<< 부호비트까지 밀어버림] >>는 시프트 연산자 밀어넣기 (부호변경없다)
//주소나 메모리사이즈 보는 연산자 없음 &n, sizeof 없다
//제어문 - c언어와 동일.
//조건문 : if(if else) ,switch case
//다른점 : switch 문에 문자열 변수사용이 가능함 C언어:정수나 한문자만 java는 String도 추가 (3개)
//스위치에서 String은 쓰지마 오해하기 쉬움 String은 주소를 저장한것임 String은 값이 아니다
//자바에서는 자동으로 equals를 해주는것
//문자열의 비교에 대한 의미파악 : equals비교로 해야하
//★==은 주소를 비교한것이고 equals는 문자열을 비교한것이다
String s1=new String("hello"); // 이 둘은 같지 않다. 주소를 비교한것이다 #1000번지와 #2000번지는 다르다
String s2=new String("hello"); //== 비교연산자
System.out.println( s1==s2); //문자열 값비교해주는 기능이 있다
System.out.println(s1.equals(s2));//s1은 리모컨이고, String객체의 값비교 기능함수를 사용
//문자열은 ==쓰면 안됌 진짜 중요
//반복분 while, for, do- while 똑같다
//무한반복 C에서는 while(1) java에서는 while(true)
}
}
Random
컨트롤 스페이스 하면 메인함수 자동생성
자료형별로 랜던값 생성 기능
nextInt( )
nextDouble ( )
nextBoolean ( )
import java.util.Random;
public class Main3 {
public static void main(String[] args) {
//랜덤한 값을 만들어내는 능력(기능)을 가진 class : Random
Random rnd=new Random();
//랜덤한 정수형 얻어오기
int a;
a=rnd.nextInt();
System.out.println("a: "+ a); //int형의 범위 -21억개~ 21억개 너무 많다
//0~9 10개의 숫자 중에 하나가 랜덤하게 나오도록..
int b;
b=rnd.nextInt(10); //10개중에 하나
System.out.println("b : "+b);
//0부터 시작해서 99개
int c=rnd.nextInt(100);
System.out.println("c: "+c);
//시작은 무조건 0인데.. 5~15까지 랜덤
int d=rnd.nextInt(11)+5; //함수에 더한게 아니다. 그 결과값에 5을 더한것이다
System.out.println("d: "+d);
//-5에서 ~5까지
int e=rnd.nextInt(11)-5;
System.out.println("e:"+e);
System.out.println( );
//실수형
double f=rnd.nextDouble();
System.out.println("f : "+f); //0.0 ~ 0.999999999999
//0.0 ~ 9.999
double g=rnd.nextDouble()*10;
System.out.println("g: "+g);
//0.0 ~ 14.9999
double h=rnd.nextDouble()*15; //15를 곱한다
System.out.println("h: "+h);
//논리값 랜덤
boolean i=rnd.nextBoolean();
System.out.println("i: "+i);
if(i) System.out.println("good"); //위에 이미 i는 랜덤값으로 값이 나오도록 되어있다
else System.out.println("bad");
}
}
728x90
반응형
'Java' 카테고리의 다른 글
Java_배열 (0) | 2023.01.26 |
---|---|
Java_String (2) | 2023.01.26 |
Java_화면 출력 객체 System.out (0) | 2023.01.24 |
Java_자료형과 변수 (2) | 2023.01.24 |
Java의 시작 (0) | 2023.01.24 |