목록java (14)
MSM8994의 화룡점정 블로그
아래 코드는 2단부터 9단까지 단마다 9단까지 계산해 적으면서 한 줄에 4단씩 배치 int startDan = 2;// 시작 단 int endDan = 9;// 끝 단 int danPerLine = 4;// 한 줄에 출력할 단수. int maxGudan = 9;// 계산할 구단수 for (int dadan = startDan; dadan
안녕하세요. Math.round(실수)가 소수점 첫째 자리에서 반올림해 가까운 정수를 내놓는다는 것은 알고 계실 겁니다.5를 3으로 나누면 1.66666666666666666 .... 이 계산되어 나옵니다.이 수를 1.667로 반올림하려면 어떻게 하면 될까요? Math.round(result*1000)/1000. 매개변수에 10의 N제곱 만큼 곱해 소수점을 N번 뒤로 밀어 Math.round()로 반올림한 다음그 결과를 10의 N제곱 만큼 나누어 소수점을 N번 앞으로 당기면 됩니다. 1.66666666666666 에 10의 3제곱 1000을 곱해서1666.66666666666 로 만듭니다. 여기서 Math.round()를 실행시키면1667 로 반올림된 정수가 반환됩니다. 이 결과를 10의 3제곱 1000..
1부터 10까지 합과 홀수 합과 짝수 합을 식과 모두 표시하려면 그냥 합, 홀수 합, 짝수 합 이렇게 3개의 반복문을 써도 되겠지만 코드 분량이 늘어나게 되므로 여기서는 한 반복문으로 하도록 하겠습니다. 반복중 발생하는 내용을 바로 출력하는 콘솔출력만으로는 내용이 섞여 달성하기 힘드실 것입니다. 문자열 변수를 만들어 여기에 식을 적도록 하면 간단히 해결할 수 있습니다. ※1 String을 초기화하지 않으면 글자를 붙일 수 없고 null로 초기화하면 실행도중 오류가 발생하게 됩니다. 따라서 빈 문자열로 초기화했습니다. ※2 여기서 조건으로 나오는 메소드는 String 객체에 공통으로 있는 isEmpty() 인데요, null이 아닌 문자열 객체에 아무 글자도 들어있지 않는지를 (String.length() ..
위 코드에서 b+i 대신 (char) (b+i) 를 하면 범위가 초과되어 다른 수가 저장되고, 0x12340041을 char로 강제변환한 결과가 0x0041이 되는지 이해하기 힘드셨을것 같습니다 byte의 범위는 -128부터 -1까지 음수 128개, 0부터 127까지 양수 128개 총 256가지의 수를 표현할 수 있습니다.유니코드 문자 하나를 저장하는 char는 0x0000부터 0xFFFF까지 65536가지를 표현할 수 있습니다.JDK 8부터 int와 long도 양수전용(unsigned)이 될 수 있다고 하지만 그냥 Java에선 양음수 둘 다 표현하기 위해 양수 범위가 반토막 나있다고 생각하시는게 편합니다. 여기서 b+i는 227입니다. 이미 b가 byte상 양수 최대치인 127(0111 1111)에 왔..