Java기초-절대옹케선생님-제2장노트

6818 단어
제 2 장
2.1 비교
2.1.1 자동판매기
  • 반환 금액은 마이너스
      public class Ticket {
    
      public static void main(String[] args) {
      	// TODO Auto-generated method stub
      //   
      	Scanner in = new Scanner(System.in);
      //		      
      	System.out.print("   :");
      	int amount = in.nextInt();
      //		    
      	System.out.println("*****************");
      	System.out.println("         ");
      	System.out.println("                ");
      	System.out.println("      10             ");
      	System.out.println("*****************");
      //		       
      	System.out.println("  :"+(amount-10));
      
      }
    
      }
    
  • 발생 가능
  • 주석 문제: 주석 버튼Ctrl+/ 또는 /**/(행내 주석)int ak=47/*36*/,y=9
  • 2.1.2 관계 연산
  • 출력이 10보다 큰지 여부
      	int amount = in.nextInt();
      	System.out.println(amount);
      	System.out.println(amount>=10);
    
    true or false
  • 관계 연산
    연산자
    보람
    = =
    대등
    !=
    같지 않다
    나머지는 일반적인 습관과 마찬가지로 두 문자의 연산자: ==, >=와 <=의 두 문자는 반드시 서로 밀접하게 연결되어야 하며 중간에 빈칸을 삽입할 수 없다.
  • 관계 연산 중의 우선순위 1) 할당 2) 동일 여부를 판단하는 ==와!=의 우선순위가 다른 것보다 낮음3) 연속 연산은 왼쪽에서 오른쪽으로 진행
  • 우선순위 예제 5>3 = 6>4 먼저 5>3과 6>4를 계산한 다음에true 6> 5> 4가 자바에서 틀렸다는true>4가 a를 판단할 수 없음==b===true a=b이면 true a====b=b==6 오류로 되돌아갑니다.비교 불가 a = b > false 비교 불가 b>false b 가false or true 라도 비교 불가 (a = b) > false 오류 사용
  • int vs double?
      int a = 5;  
      double b = 5.0;  
      System.out.println(a==b);   
    
    결과는true이지만 제시
      double a = 1.0;
      double b = 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;
      System.out.println(a==b);
    
    결과는falsea1.0이고 b는0.99999999999
      Math.abs(f1 - f2) < 0.00001
    
    부동점수는 오차가 있으므로 위에서 절대치의 차이를 판단해야 한다
  • 2.2 판단문
    2.2.1 판단
  • 판단차표
      //   
      		Scanner in = new Scanner(System.in);
      //		      
      		System.out.print("   :");
      		int amount = in.nextInt();
      		System.out.println(amount);
      		System.out.println(amount>=10);
      		if (amount>=10)
      		{
      	//		    
      			System.out.println("*****************");
      			System.out.println("         ");
      			System.out.println("                ");
      			System.out.println("      10             ");
      			System.out.println("*****************");
      	//		       
      			System.out.println("  :"+(amount-10));
      		}
    
  • 판단연령
      		final int MINOR= 35;
      	System.out.print("       ");
      		Scanner in = new Scanner(System.in);
              int age = in.nextInt();
      		System.out.print("     :"+age);
       if (age<=MINOR)
       
      	 System.out.println("      ");
       else
       {
      	 System.out.println("           ,     ");
       }
    
  • 2.2.2 흐름도
    흐름도를 그리는 것을 습득하면 사고방식을 정리할 수 있다
    Created with Rapha l 2.2.0에서 판단을 시작합니까?끝 yes no
    2.2.3 중첩 및 종속 연결 if
  • else의 일치else는 항상 가장 최근의if와 일치
      if ( code == READY ) {
        if ( count <20 )
         System.out.println("    
    "); } else System.out.println(" n");
  • 급 연결
      if ( exp1 )
      st1;
      else if ( exp2 )
      st2;
      else
      st3;
    
    은 이런 격식을 쓸 수 있으며, 혼동되지 않도록 대괄호
  • 를 사용하는 것이 가장 좋다.
  • 단일 수출 코드가 더 좋은 예:
      int f;
      if ( x < 0 ) {
      f = -1;
      } else if ( x == 0 ){
      f = 0;
      } else {
      f = 2 * x;
      }
      System.out.println(f);
    
    비교적 나쁜 예:
      if ( x < 0 ) {
      System.out.println(-1);
      } else if ( x == 0 ) {
      System.out.println(0);
      } else {
      System.out.println(2 * x);
      }
    
  • 2.2.4 if else의 일반적인 오류
  • 반드시 {}
  • 추가
  • if 뒤에 ";"이 있으면 안 됩니다.있으면 제때에 맞지 않아도if 뒤에 있는 문장에 점수를 붙이는 것은 아무것도 하지 않는다는 것을 의미한다
  • =혼동 =
  • 괄호의 문장을 하나의tab-자동 구분
  • 으로 축소
  • 일반 형식
     if (x<0)
     { 
     	f=-1;
     }
     else if (x==0)
     {
     	f=0;
     }
     else
     {
     	f=2*x;
     }
    
    은 삭제/주석 편의를 위해
  • 2.3 다중 분기
    2.3.1 switch(int)-case
    	switch ( type ) {
    	case 1: 
    	System.out.println("  ");
    	break;
    	case 2:
    	System.out.println("   ");
    	break;
    	case 3:
    	System.out.println("    ");
    	break;
    	case 4:
    	System.out.println("  ");
    	break;
    	default:
    	System.out.println(" ???");
    	}
    
  • switch(제어표현식) {}제어표현식은 정수형(int)
  • 만 가능
  • case 상량: 상량도 상수일 수도 있고 상수 표현식일 수도 있다. case 뒤에는 사칭이다:
  • break; 브레이크를 만날 때까지 케이스 뒤에 있는 문장을 실행하기;분기 건너뛰기
  • default: 모든 것이 일치하지 않으면default 뒤의 문장을 실행합니다.없으면 아무것도 안 해
  • 2.3.2 break
  • 만약 실행 과정 중break를 만나지 못했다면?switch 뒤의 제어 표현식을 계산한 후 프로그램은 해당하는case로 이동합니다. 그러나 이case 내부에break가 없으면 문장을 실행한 후 아래의case로 순서대로 실행하여break나 switch가 끝날 때까지
  • debug 1, 줄 숫자를 두 번 클릭하면 작은 파랑점 설정 단점 2가 나타날 수 있고, 작은 바가지벌레가 debug 3을 진행하고, step over는 점차적으로 4를 운행하며, 오른쪽 상단의 작은 바가지벌레는 debug 인터페이스
  • 로 전환할 수 있다.
    2.4 작업 및 질문
    2.4.1 작업
  • 시간 환산
     Scanner in=new Scanner(System.in);
     int BJT = in.nextInt();
     int UTC;
     final int timedelay=800;
     if (BJT<=2359)
     {
     	if (BJT<=759)
     	{
     		UTC=(2400-timedelay)+BJT;
     	}	
     	else
     		UTC=BJT-timedelay;
     	System.out.print(UTC);
     }
    
  • 신호 보고서
     Scanner in =new Scanner(System.in);
     int RS= in.nextInt();
     int R;
     int S;
     R=RS/10;
     S=RS-R*10;
     switch(S)
     {
     case 1:
     	System.out.print("Faint signals, barely perceptible, ");
     break;
     case 2:
     	System.out.print("Very weak signals, ");
     	break;
     case 3:
     	System.out.print("Weak signals, ");
     	break;
     case 4:
     	System.out.print("Fair signals, ");
     	break;
     case 5:
     	System.out.print("Fairly good signals, ");
     	break;
     case 6:
     	System.out.print("Good signals, ");
     	break;
     case 7:
     	System.out.print("Moderately strong signals, ");
     	break;
     case 8:
     	System.out.print("Strong signals, ");
     	break;
     case 9:
     	System.out.print("Extremely strong signals, ");
     	break;
     }
     switch(R)
     {
     case 1:
     	System.out.print("unreadable.");
     	break;
     case 2:
     	System.out.print("barely readable, occasional words distinguishable.");
     	break;
     case 3:
     	System.out.print("readable with considerable difficulty.");
     	break;
     case 4:
     	System.out.print("readable with practically no difficulty.");
     	break;
     case 5:
     	System.out.print("perfectly readable.");
     	break;
     }
    
  • 2.4.2 의문과 사고
  • println과 print의 차이 println과 print는 기본적으로 별 차이가 없다. 바로 마지막에 줄을 바꾼다
  • Scanner in =new Scanner(System.in); 경고 Resource leak: 'in' is never closed는 마지막에 다음과 같이 추가할 수 있습니다:
     in.close();//  
    
    또는
     xxx.close();//  
    
    xxxx가 정의한 변수 원인: 데이터 입력 스캐너 (Scanner)로 설정 메모리를 얻었지만 끝날 때 이 메모리를 닫거나 풀지 않고 경고가 나타납니다.따라서 mian 함수의 끝은 XXX를 사용합니다.close();데이터 흐름을 끝내고 메모리를 방출합니다.정답은 여기 CSDN 왕승비 블로그
  • 에서 나왔습니다.

    좋은 웹페이지 즐겨찾기