public class Test01 {
public static void main(String[] args) {
// 1 ~ 127까지의 랜덤한 수를 뽑는 코드를 만들자.
// Math.random();을 이용해서.
// 아스키코드표
int random = (int) (Math.random() * 127 + 1); // 1 더하지 않으면 0~126
System.out.println((char) (random));
// char random = (char) (Math.random() * 127 + 1);
// System.out.println(random);
// 영문자인지, 숫자인지, 특수기호인지 찾아내는 if문을 만들고 싶어요.
// 영문자 65~90, 97~122
// 숫자 48~57
// 특수기호는 나머지 전부??
// if (random >=48 && random <= 57) {
// System.out.println((char) (random) + " 숫자입니다.");
// } else if (random >= 65 && random <= 90 || random >= 97 && random <= 122) {
// System.out.println((char) (random) + " 영문자입니다.");
// } else {
// System.out.println((char) (random) + " 특수문자입니다.");
// }
// 숫자인지, 특수기호인지 찾아내는 if문 만들기.
// 문자로 범위 잡아도 잘 된다~
if(random >= '0' && random <= '9') {
System.out.println("숫자입니다.");
} else if(random >= 'A' && random <= 'Z') {
System.out.println("영어 대문자입니다.");
} else if(random >= 'a' && random <= 'z') {
System.out.println("영어 소문자입니다.");
} else {
System.out.println("숫자/영어 외 특수 문자입니다.");
}
}
}
JAVA 11 API 검색어로 오라클 HELP CENTER에서 API 문서 볼 수 있다.
package dec06;
// 반복문
/* 자바에서는 필요에 따라서 특정 문장을 반복적으로 실행 가능
* 이때 사용되는 구문이 loop문.
* 자바는 3가지를 제공. for(forEach), while, do~while
*
* for(변수초기화식; 변수조건문; 변수증감식){
* 변수 조건문이 참이 된다면 반복 실행할 문장;
* }
*
*/
public class For01 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.print("*");
}
System.out.print("이렇게 해도 엔터 됨. \n\r");
String star = "";
for (int i = 0; i < 5; i++) {
star += "*";
}
System.out.println(star);
}
}
package dec06;
import java.util.Iterator;
/*
* https://codingdojang.com/scode/393
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
*/
public class Test02 {
public static void main(String[] args) {
int count = 0; // 8 나올 때마다 저장할 변수
for (int i = 0; i < 10000; i++) {
// System.out.println(i + ", ");
String value = String.valueOf(i); //숫자 i -> 문자화
// System.out.println(value);
// char valueCh = value.charAt(0);
for (int j = 0; j < value.length(); j++) {// 120 -> 3
// System.out.print(value.charAt(j));
if(value.charAt(j) == '8') {
count++;
}
}
// System.out.println("");//enter
}
System.out.println("8의 총합은: " + count);
}
}
위에꺼 주석 빼고 정리하면
public class Test02 {
public static void main(String[] args) {
int count = 0; // 8 나올 때마다 저장할 변수
for (int i = 0; i < 10000; i++) {
String value = String.valueOf(i); //숫자 i -> 문자화
for (int j = 0; j < value.length(); j++) {// 120 -> 3
if(value.charAt(j) == '8') {
count++;
}
}
}
System.out.println("8의 총합은: " + count);
}
}
숫자 형태로 8 카운트하는 방법 찾아보자.
package dec06;
import java.util.Iterator;
/*
* https://codingdojang.com/scode/393
1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)
*/
public class Test02 {
public static void main(String[] args) {
int count = 0; // 8 나올 때마다 저장할 변수
// // 풀이 1
// for (int i = 0; i < 10000; i++) {
// if (i % 10 == 8)
// count++;
// if (i / 10 % 10 == 8)
// count++;
// if (i / 100 % 10 == 8)
// count++;
// if (i / 1000 % 10 == 8)
// count++;
// }
// 풀이2
for (int i = 0; i < 10000; i++) {
for (int j = i; j > 0; j /= 10) {//i를 계속 10으로 나눠서 나머지가 8일때 count
if(j % 10 == 8) {
count++;
}
}
}
System.out.println("8의 총합은: " + count);
// 여기서 8 골라내는 거 먼저 해봐도 된다.
int num = 1288;
System.out.println(num % 10);
System.out.println(num / 10 % 10);
System.out.println(num / 100 % 10);
System.out.println(num / 1000 % 10);
}
}
package dec06;
public class For03 {
public static void main(String[] args) {
//for 속에 for (이중 for문)
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("(" + i + ", " + j + ")");
}
System.out.println();//enter
}
System.out.println("============================");
// 아래 문장 반복문 출력
// *****
// *****
// *****
// *****
// *****
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("============================");
int n = 1;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < n; j++) {
System.out.print("*");
}
n++;
System.out.println();
}
System.out.println("============================");
// i로 하면 되는구나~~
for (int i = 0; i < 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
// *****
// ****
// ***
// **
// *
System.out.println("============================");
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("============================");
for (int i = 0; i < 5; i++) {
for (int j = 5; j > i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
수많은 루프
// 무한 반복
for (;;) { //C언어에서 무한루프 쓸 때
System.out.println("!");
}