타닥타닥 개발자의 일상

Java 함수 알아보기 function / method / parameter / return/ void / toUppearCase 없이 대문자 변환하는 function 만들기 본문

코딩 기록/Java

Java 함수 알아보기 function / method / parameter / return/ void / toUppearCase 없이 대문자 변환하는 function 만들기

NomadHaven 2021. 12. 10. 22:06

 function : 함수, 독립적
 method : class에 소속되어 있는 함수.
 void: 자료형이 없는 것  


 형식
  parameter, 인수, 인자
 돌아오는 값의 자료형 함수명(들어가는 값의 자료형 변수, 들어가는 값의 자료형 변수....){
 
  처리
 
  return 값; 
 }
 
  


입력 함수

int i = fuctionName('A'); //'A'==argument
System.out.println(i);  //return값 1이 i에 저장
static int fuctionName(char c) { //parameter
System.out.println("fuctionName(char c)호출"); 

return 1;
}
출력
fuctionName(char c)호출
1

 

 

toUppercase 구문 없이 함수로 대문자 변환하기

입력
String st = "abcDEF"; 
String upst = toUpperCase(st); //함수 toUppercase에 st="abcDEF" 삽입.
System.out.println(upst); //삽입한 값 출력
함수
static String toUpperCase(String str) { //변수는 문자열 형식
String s = "";
for(int i=0; i <str.length() ; i++) {  //문자열의 길이만큼 반복한다는 조건
int n = str.charAt(i);   //문자열의 특정 글자에 있는 문자를 출력
if(n>=97) {  //만약 n>97이라면 소문자라는 뜻.
n= n-32;   //아스키 대문자 = 아스키 소문자 값에서 32뺀 값. 따라서 n>97소문자이면 32를 빼서 대문자로 변환.
}
s = s+ (char)n;  //초기화한 문자열 변수 s+문자열로 자료형 변환한 n 결합, s로 초기화
}
return s; // s를 리턴



출력
ABCDEF

 

입력
functionName1(); 
함수
static void functionName1() {                //자료형이 없는 void 함수
System.out.println("fuctionName1() 호출"); //return도 없지만 void에서도 리턴 사용가능.
}
출력
fuctionName1() 호출



입력
functionName2(6.2,2);    //함수에  넣어서 6.2/2 값 구함
함수
static void functionName2(double d, int n) {                     //첫번째 소수형 변수d 두번째 정수형 변수 n
double result;                                                            //결과는 소수형으로 설정
System.out.println("fuctionName2(double d, int n)호출");

if(n==0) {                                                                 //나누는 변수 n이 0과 같으면
System.out.println("계산할 수 없습니다.");                        //계산할수 없습니다 출력
return; //break문과 유사                                              //retrun 통해서 종료
}

result =d / n;                                                           //변수 n이 0이 아니라면
System.out.println("결과값:"+result);                              // result인 d/n 값 출력 
}
출력
fuctionName2(double d, int n)호출
결과값:3.1

 

입력
functionName2(6.2,0); 
함수
static void functionName2(double d, int n) {
double result;
System.out.println("fuctionName2(double d, int n)호출");

if(n==0) {
System.out.println("계산할 수 없습니다.");
return; //break문과 유사. 함수가 종료되고 다시 선언문으로 돌아간다.
}

result =d / n;
System.out.println("결과값:"+result);
}
출력
fuctionName2(double d, int n)호출
계산할 수 없습니다.

 

입력
int r =functionName3(); 
함수
static int functionName3() {                                 //parameter에 아무것도 없다.
System.out.println("fuctionName3() 호출");    

return 3;
}
출력
fuctionName3()                          //reutn 3으로 설정했던게 출력되지 않는다. 대신 int r에는 3이라는 값이 저장되어있다.
                                               따라서 System.out.println(r) =3 으로 출력.

 

입력
int arrayNum[] = {1,2,3,4,5};
functionName4(arrayNum[0], arrayNum[1], arrayNum[2], arrayNum[3], arrayNum[4]);

System.out.println(Arrays.toString(arrayNum));
함수

static void functionName4(int a1, int a2, int a3, int a4, int a5) { //parameter는 array가 아닌 단순한 int
a1 = a1*2;
a2 = a2*2;
a3 = a3*2;
a4 = a4*2;
a5 = a5*2;
}
//순수한 상수 값만 넘겨줬기 때문에 함수 밖 배열 int arrayNum[]에 영향을 주지는 않는다.
(value값을 할당)
arrayNum[0]=1이라서 1이라는 상수만 함수로 넘긴거고 함수 안에서 2 곱해봤자 복사한 상수 값만 변한다.
함수 밖 배열인 arrayNum[1]은 여전히 1이다.
출력
[1, 2, 3, 4, 5]

 

 

입력
int arrayNum[] = {1,2,3,4,5};
functionName5(arrayNum);
System.out.println(Arrays.toString(arrayNum));

functionName5(arrayNum);                          
System.out.println(Arrays.toString(arrayNum));

함수
static void functionName5(int array[]) {               //parameter가  정수형 배열인 array[]
for (int i = 0; i < array.length; i++) {
array[i] = array[i]*2;  //array의 주소를 할당하고 해당 주소에 있는 값에 2를 곱한다. 실제 함수 밖의 배열인 arrayNum에 영향.      }
}

static int[] functionName6(int array[]) {
for (int i = 0; i < array.length; i++) {
array[i] = array[i]*2;   

}
return array;
}


출력
[2, 4, 6, 8, 10]

[4, 8, 12, 16, 20]  
//이미 int arrayNum은 fuctionName5를 통해서 2가 곱해진 상태로 갱신. 따라서 또 한번 2를 곱하는 functionName6를 통해서 가장 초기의 arrayNum[]에서 4가 곱해진 값이 출력됨

 

입력
String st = "abcDEF"; 
String upst = toUpperCase(st);   //함수 toUpperCase에 abcDEF를 넣은 값을
System.out.println(upst);            //출력한다
함수
static String toUpperCase(String str) {
String s = "";                                                                                               //문자열 초기화
for(int i=0; i <str.length();i++) {
int n = str.charAt(i);
                         //charAt은 받은 변수를 문자로만 반환하는게 아니라 int로도 반환하는 기능 있다. 
if(n>=97) {         //아스키 코드 소문자는 97부터 시작한다.
n= n-32;           //아스키 코드 소문자에서 대문자를 빼면 항상 32값이 차이난다.
}
s = s+ (char)n;     //(char)n =변수를 문자형으로 강제 변환시킨다.
}     
return s;
}
출력
ABCDEF





Comments