if~else
●受講実績
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test029
{
public static void main(String[] args)throws IOException
{
//주요 변수 선언
int kor, eng, mat ;
int tot;
double avg;
char grade='F'; //else로 끝나지 않아 에러가 난다는건 거짓말. 이렇게 설정해두면 되니까
String name;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//○연산 및 처리
System.out.print("이름 입력 : ");
name=br.readLine();
System.out.print("국어 점수 : ");
kor=Integer.parseInt(br.readLine());
System.out.print("영어 점수 : ");
eng=kor=Integer.parseInt(br.readLine());
System.out.print("수학 점수 : ");
mat=kor=Integer.parseInt(br.readLine());
//○총점, 평균 산출
tot = kor+eng+mat;
avg = tot/3.0; //★3아니고 3.0
//○등급산출 ※두 개 이상의 조건이 등장→논리연산자
if(avg>=90 && avg<=100)
{grade='A';}
else if (avg>=80)
{grade='B';}
else if (avg>=70)
{grade='C';}
else if (avg>=60)
{grade='D';}
//○결과출력
System.out.println();
System.out.printf(">>당신의 이름은 %s 입니다\n",name);
System.out.printf(">>국어 점수는 %d\n",kor);
System.out.printf(">>영어 점수는 %d\n",eng);
System.out.printf(">>수학 점수는 %d\n",mat);
System.out.printf(">>총점은 %d 이고, 평균은 %.2f 입니다\n",tot,avg);
System.out.printf(">>등급은 %c 입니다\n",grade);
}
}
🧐 grade='D'; 👉 「文字列ではなく文字」🧐 もしドアがいつもelseで終わったら?❌ 👉初期化によってはelseで終わらなくてもエラーは発生しません.
●偶数奇数判別
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test030
{
public static void main(String[]args) throws IOException
{
//주요 변수 선언
int n;
String strResult;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("임의의 정수 입력 : ");
n=Integer.parseInt(br.readLine());
/* 영이 짝수로 산출되는 에러 발생
if (n%2==0)
{
System.out.println(n+"→짝수");
}
else if(n%2!=0)
{
System.out.println(n+"→음수");
}
else
{
System.out.println(n+"영");
}
*/
if(n==0)
{
strResult = "영";
}
else if (n%2==0)
{
strResult = "짝수";
}
else
{
strResult="음수";
}
System.out.println(n+"→"+strResult);
}
}
🧐注意条件文の順序で出力値が異なる●数値と演算子を入力して数式を出力する
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test032
{
public static void main(String[] args)throws IOException //readLine때문에 IOException
{
/*
//방법①
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a, b;
char op; //연산자
System.out.print("첫 번째 정수 입력 : ");
a= Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
b= Integer.parseInt(br.readLine()); //인티져
//Integer.parseInt() 어쨌든 숫자 모양으로 되어있어야 인티져로 정수로 변경이 가능해
System.out.print("연산자 입력 [+ - * /] : ");
//op = Stytem.in.read(); //(오류)앞은 chr, 뒤는 int라 형변환이 필요하다
op=(char)System.in.read();
if(op=='+')
{
System.out.printf("\n>>%d+%d=%d\n",a,b,(a+b));
}
else if(op=='-')
{
System.out.printf("\n>>%d-%d=%d\n",a,b,(a-b));
}
else if(op=='*')
{
System.out.printf("\n>>%d*%d=%d\n",a,b,(a*b));
}
else if(op=='/')
{
System.out.printf("\n>>%d/%d=%d\n",a,b,(a/b));
}
else
{
System.out.printf("입력과정에 오류가 존재합니다.\n");
}
*/
/*
//방법②
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a, b, op; //연산자도 정수로 받기
System.out.print("첫 번째 정수 입력 : ");
a= Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
b= Integer.parseInt(br.readLine()); //인티져
//Integer.parseInt() 어쨌든 숫자 모양으로 되어있어야 인티져로 정수로 변경이 가능해
System.out.print("연산자 입력 [+ - * /] : ");
op = System.in.read(); //(오류)앞은 chr, 뒤는 int라 형변환이 필요하다
---------------
아스키코드 받아온다
if(op==43)
System.out.printf("\n>>%d+%d=%d\n",a,b,(a+b)); // 코드가 한줄이면 {}(블레이스) 생략 가능
else if(op==45)
System.out.printf("\n>>%d-%d=%d\n",a,b,(a-b));
else if(op==42)
System.out.printf("\n>>%d*%d=%d\n",a,b,(a*b));
else if(op==47)
System.out.printf("\n>>%d/%d=%d\n",a,b,(a/b));
else
System.out.printf("입력과정에 오류가 존재합니다.\n");
*/
//방법③
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//check!!
int a, b, result=0; //0으로 초기화해서 else 없어도 괜찮다.
char op;
System.out.print("첫 번째 정수 입력 : ");
a= Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
b= Integer.parseInt(br.readLine()); //인티져
//Integer.parseInt() 어쨌든 숫자 모양으로 되어있어야 인티져로 정수로 변경이 가능해
System.out.print("연산자 입력 [+ - * /] : ");
op = (char)System.in.read(); //(오류)앞은 chr, 뒤는 int라 형변환이 필요하다
if(op=='+')
result=a+b;
else if(op=='-')
result=a-b;
else if(op=='*')
result=a*b;
else if(op=='/')
result=a/b;
System.out.printf("\n>>%d%c%d\n", a,op, b);
}
}
●数量の大きさによる並べ替え
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Test033
{
public static void main(String[] args)throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a,b,c;
System.out.print("첫 번째 정수 입력 : ");
a= Integer.parseInt(br.readLine());
System.out.print("두 번째 정수 입력 : ");
b= Integer.parseInt(br.readLine()); //인티져
System.out.print("세 번째 정수 입력 : ");
c= Integer.parseInt(br.readLine()); //인티져
if(a>b)
{ //a와b 자리 바꾸기
a=a^b;
b=b^a;
a=a^b;
}
if(a>c)
{ //a와c 자리 바꾸기
a=a^c;
c=c^a;
a=a^c;
}
if(b>c)
{ //b와c 자리 바꾸기
b=b^c;
c=c^b;
b=b^c;
}
System.out.println("자리바꿈발생");
System.out.printf("\n>>정렬 결과 : %d %d %d\n",a,b,c);
}
}
●大文字変換
import java.io.IOException;
public class Test035
{
public static void main(String[] args) throws IOException
{
// ○주요 변수 선언
int a; // 입력받은 알파벳 int형으로 변수 선언
System.out.print("알파벳 한 문자 입력 : ");
a = System.in.read();
// ○연산 및 처리
if ((a>=65 && a<=90) || (a>=97 && a<=122))
{
if (a<=90) // if 대문자
{
a = a+32; // 대문자 + 32 = 소문자
}
else // if 소문자
{
a = a-32; // 소문자 - 32 = 대문자
}
// ○ 결과 출력
System.out.println(">> " + (char)a); // 아스키코드값을 char형으로 변환
}
else
{
System.out.println(">> 입력 오류~!!!");
}
}
}
アシュキパスワード🧐大文字(A~Z):65~90
🧐小文字(a~z):97~122
Reference
この問題について(if~else), 我々は、より多くの情報をここで見つけました https://velog.io/@chaeyun/제어문-조건문과-반복문テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol