본문 바로가기
Java

Java_키보드 입력 Scanner

by 히예네 2023. 1. 26.
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