728x90
반응형
연습문제들
import java.util.Scanner;
import javax.swing.plaf.basic.BasicGraphicsUtils;
public class Daily_Upload_TSTORY {
public static void main(String[] args, char[] sum) {
//연습문제들
int x = 15;
System.out.println(10<x&&x<20);
char ch = ' ';
System.out.println(ch==' '&&ch=='\t');
String x2 = "X";
System.out.println(x2.equalsIgnoreCase(x2));
char ch2 = '8';
System.out.println('0'<=ch2 && ch2<='9');
int year = 84;
System.out.println(year%400==0 || (year%4==0 &&!(year%100==0)));
boolean powerOn = false;
if(!(powerOn));
String str = "yes";
if(str.equals("yes"));
//1-20 정수 중에 2, 3의 배수가 아닌 수의 총합 구하기
int sum = 0;
for(int num = 0; num<=20; num++) {
if((num%2!=0 && num%3!=0)) {
sum+=num;
}
}
System.out.println(sum);
//1+(1+2)+(1+2+3)+...+(1+2+3+...+9+10) 총 합 구하기
int sum2 = 0;
for(int num = 1; num<=10; num++) {
for(int n = 1; n<=num; n++) {
sum2+=n;
}
}
System.out.println(sum2);
//1+(-2)+3+(-4)...+식으로 더했을때 몇까지 더해야 총합이 100이상이 되는지 구하기
int sum4=0, num=0;
while(true) {
num++;
if(num%2==0)
sum4-=num;
else
sum4+=num;
if(sum4>=100)
break;
}
System.out.println(num);
//for문 while로 바꾸기
for(int i = 0; i<=3; i++) {
for(int j= 0; j <= i; j++)
System.out.print("*");
System.out.println("");
}
int s = 0, b = 0;
while(s<=3) { //0으로 시작해서 조건이 true 이므로 두번째 조건식으로 넘어감
while(b<=s) { // 0<=0 이므로 1번 실행
System.out.print("*"); // *을 한번 찍고
b++; //b을 한번 더함으로써 조건이 만족하지 않으므로 종료
}
System.out.println(""); //후 띄어쓰기를 위해 반복문 마지막에 삽입
s++;//1번째 조건을 만족시키기 위해 1+를 하여 3까지 반복
b=0;//b를 계속 더하게 되면 s변수와 값이 동일해질수 밖에 없으므로 반복이 1번만 된다
//따라서 0으로 초기화시켜줌으로써 1<=3 등으로 변수 실행 조건을 반복함
}
//두개 주사위를 던졌을 때 눈의 합이 6이 되는 모든 경우의 수 출력
for(int a = 1; a<=6; a++) {
for(int A = 1; A<=6; A++) {
if(a+A == 6) {
System.out.printf("주사위 합이 6이 되는 모든 경우의 수 %d+%d = %d",a,A,(a+A));
}
}
System.out.println(""); //모든 반복문이 마무리 된 후에 띄어쓰기 용
}
//문자열을 숫자로 바꾸어 계산
String str = "12345";
int sum = 0;
int s = 0;
for(int i = 0; i < str.length(); i++) {
char ch = ' ';
ch = str.charAt(i); // charAt()으로 한자리수 추출 ()안에는 추출할 순서번호 대입
//sum = ch -'0'; // 두가지 방법으로 ch에서 숫자 추출가능
//ch에서 '0' 제거
sum = Character.getNumericValue(ch);
//or Character.getNumericValue() 사용해서 숫자 추출
s+=sum;
System.out.println(s);
}
//1부터 6사이의 임의 정수를 변수 value에 저장
int value = (int)(Math.random()*5)+1;
System.out.println("value: "+ value);
// int type 12345를 활용해서 1+2+3+4+5 출력
int num = 12345, sum = 0;
while(num>0) {
sum += num%10;
num = Math.round(num/10);
System.out.println("sum = "+sum);
}
}
연습문제 마지막 하이라이트 (자체 양식)
import java.util.Scanner;
public class Daily_Tstory {
public static void main(String[] args) {
//1부터 100까지의 값을 랜덤으로 생성해서 사용자가 값을 입력하여 맞추는 게임
int i = 0, j = 0, count = 0;
i = (int)((Math.random()*99)+1);
System.out.println("1부터 100까지 값 입력");
Scanner scanner = new Scanner(System.in);
while(j!=i) {
String input = scanner.nextLine();
j = Integer.parseInt(input);
count++;
System.out.println("다시 입력");
if(j>i) {
System.out.println("작은 수를 입력하세요");
}
else {
System.out.println("큰 수를 입력하세요");
}
}
System.out.println("정답입니다");
System.out.println("시도하신 횟수는 "+count+"번 입니다.");
}
}
일단 문제 지문만 보고 어떻게 하면 문제를 해결할 수 있을까 생각하고
직접 양식에 맞추지 않은 프로그래밍을 하였음
아래는 책에서 나온대로 do - while문에 맞춰서 문제를 해석한 모습이다.
연습문제 마지막 하이라이트 (주어진 양식)
import java.util.Scanner;
public class Daily_Tstory {
public static void main(String[] args) {
//1부터 100까지의 값을 랜덤으로 생성해서 사용자가 값을 입력하여 맞추는 게임
int answer = (int)((Math.random()*99)+1);
int input = 0;
int count = 0;
System.out.println("1-100숫자 입력");
java.util.Scanner s = new java.util.Scanner(System.in);
do {
count++;
String ss = s.nextLine();
input = Integer.parseInt(ss);
if(input>answer) {
System.out.println("작은 수를 입력");
}
else if(input<answer) {
System.out.println("큰 수를 입력");
}
else {
break;
}
}
while(true);
System.out.println("정답입니다");
System.out.println("시도한 횟수: "+ count);
}
}
배열 개념, 생성, 길이 - array
public class Daily_Tstory {
public static void main(String[] args) {
//배열 array 개념
int[] num; //int의 배열을 선언
num = new int[5]; // 선언한 num int에 new int[5] 5개의 길이를 생성 (0,1,2,3,4)
String[] str;
str =new String[5];
double d[];
d = new double[5];
short st[]; // 변수 이름 옆에 써도 무관, c언어와 비슷하게 작성된 모습
st = new short[5];
//나머지 변수들도 동일하게 생성
//array [] 를 생성할때는 동일한 변수로만 생성 가능
//생성된 길이는 변수이름이 적혀져 있지 않음으로
str[0]="array"; // 로 지정된 길이안에 값을 설정한 후
String test = str[0]; //다른 변수에 넣어서 출력도 가능하고 이 자체로도 출력 가능
System.out.println(test);
// char[] ch = new char [5]; // 배열의 선언과 길이 생성을 동시 가능
// ch[0]='a';
// for(int i = 0; i < ch.length; i++) {
// System.out.println("ch["+i+"] = "+ch[i]);
// }
// 배열의 길이
// .length로 표현가능
// 배열을 한번 실행하면 그 길이를 바꿀 수 없음
System.out.println(ch.length + 3); // = 8
//배열의 초기화 & 업데이트
char ch[] = {'q','w','e','r','t'}; //{}를 사용하여 새로 지정
char ch[] = new char {'q','w','e','r','t'}; //로 new char은 생략 가능
System.out.println(ch[1]);
}
}
배열 출력, 값의 자리 바꾸기
값 바꾸기를 활용하여 복권 만들기 예시문제
import java.util.Arrays;
public class Daily_Tstory {
public static void main(String[] args) {
//배열 출력
int[] i = new int[3]; //따로 길이 지정을 할 수 있지만
int[] j = {0,1,2,3,4,5}; //로 값까지 지정해버리면 배열이 값의 개수에 맞춰 자동생성됨
System.out.println(j.length);
for(int a=0; a<j.length; a++) {
System.out.println("j:" + j[a]);
}
System.out.println(j); // 배열 변수 자체를 출력하는 것은 불가
char[] ch = {'a','b','c'};
System.out.println(ch); // char 타입은 예외적으로 가능
String[] str = {"t","e","s","t"};
System.out.println(Arrays.toString(str));
//바로 출력이 안될때에는 Arrays라는 method를 import 시키고 Arrays.toString method를 사용하여 출력
//Arrays.toString은 타입을 String 으로 바꿔줌
System.out.println(Arrays.toString(j));
//배열의 총 합과 평균 구하기 예시문제
int sum = 0;
float average = 0f;
int[] s = {100,90,70,87,74};
for(int i = 0; i<s.length; i++) {
sum+=s[i];
}
average = (float)sum/s.length;
System.out.println(sum);
System.out.println(average);
//배열의 최댓값과 최소값을 알아내기 예시문제
int[] score = {50,60,30,90,70};
int max = score[0]; //일단 배열의 0번째로 최대값을 재설정해야함
int min = score[0]; //일단 배열의 0번째로 최소값을 재설정해야함
for(int i = 1; i<score.length; i++) {
if(score[i]>max) {
max = score[i];
}
else if(score[i]<min){
min=score[i];
}
}
System.out.println("max= " + max);
System.out.println("min = " + min);
//배열활용하여 숫자 섞기
int[] random = {0,1,2,3,4,5,6,7,8,9};
System.out.println(random[0]);
for(int i = 0; i <= 100; i++) {
int j = (int)(Math.random()*random.length);
int tem = random[0]; //random[0]을 임시 변수 tem 으로 저장
random[0] = random[j]; //random배열의 0번째 값을 랜덤 배열로 교체
random[j] = tem; //랜덤배열위치에 미리 저장해놓은 0번째 값을 대입
//정리:
//0번째 위치에 다른 배열위치 함수 삽입
//다른 위치에는 저장해놓았던 0번째 함수를(tem) 다른 위치에 삽입
//이 과정이 100번 반복되면서 배열간의 값이 중복없이 섞임.
//0번째의 값이 계속 같은 배열내의 값으로 반복되므로 중복이 없음
}
System.out.println(Arrays.toString(random));
//로또번호(1-45)을 무작위로 선정하여 6개의 숫자를 추출
int[] rotto = new int [45];
for(int i = 0; i < 45; i++) {
rotto[i] = i+1;
}
for(int j = 0; j < 6; j++) {//굳이 100번이나 섞을 필요 없고 찾을자리 6개만 섞어주면됨
int r = (int)(Math.random()*45);
int tem = rotto[0];
rotto[j] = rotto[r];
rotto[r] = tem;
}
for(int k = 0; k<6; k++) {
System.out.println("Lottery N: "+rotto[k]);
}
}
}
커맨드라인 매개변수 입력
import java.util.Arrays;
public class Daily_Tstory {
public static void main(String[] args) {
//string 함수: substring(0,0) & charAt
String str = "Hello Wold";
String tem = str.substring(0,5);
System.out.println(tem); //substring은 하나만 출력하는 charAt과 다르게 범위 지정하여 출력 가능
char ch = str.charAt(6);
System.out.println(ch); //charAt은 지정 장소의 한가지 문자열만 출력 가능
//커맨드 라인을 통해 입력받기
//본래는 Scanner method를 통해 input.nextLine()으로 사용자한테 문자열을 입력받지만
//이 커맨드 라인을 활용해서 /s 공백문자로 구분해서 여러가지 문자열을 입력받기 가능
for(int i=0; i<args.length; i++) {
System.out.println("시스템 파일: "+args[i]);
}
//Run - run configuration - arguments - program arguments 에서 매개변수(args) 에 직접
//지정할 수 있고 공백으로 구분된 모든 매개변수들은 String으로만 저장된다.
//입력하지 않고 출력하면 크기가 0인 배열 생성가능
//추가 팁:
//윈도우 cmd로 자바 파일 실행하기
//alt+enter로 현재 class 위치 확인 > project 폴더로 가서 bin 파일 경로 디렉토리 카피
//>그 후 cmd 실행하여 cd C:\Users\gram\eclipse-workspace\New22.1.8\bin (예시) 실행
//>그럼 bin경로로 가져있을텐데 dir 입력하여 파일목록 확인 > java Daily_Tstory(class 이름) 실행하면 설정한 시스템 매개변수 실행됨
//윈도우 자체에서 매개변수를 추가할수 도있는데 동일하게 java Daily_Tstory(class 이름) aa bb cc(추가할 시스템 매개변수) 입력하면 넣어짐
//커맨드에서 cd..을 실행하여 다시 클래스파일로 돌아가서 .java파일이 들어있는 클래스폴더로 이동한 후에
//type Daily_Tstory.java(예시)를 실행하여 eclips를 키지않고 커맨드에서 실행가능
//따라서 프로그램에서 매개변수를 이용한 조건문이나 프로그램이 있다면 따로 고칠필요 없이 커맨드에서 변경 가능
}
}
위의 같은 커맨드예시는 조건문이나 프로그램에서 매개변수(args)를 사용할 때 따로
eclips를 들어가지 않고 commend center 내에서 변경할 수 있는 팁
728x90
반응형
'Java > 자바의정석 기초편' 카테고리의 다른 글
자바 학습 & 복습 7일차 - array 배열 연습문제 (0) | 2022.01.17 |
---|---|
자바 학습 & 복습 7일차 - array 이차원 배열 (0) | 2022.01.16 |
자바 학습 & 복습 5일차 (0) | 2022.01.13 |
자바 학습 & 복습 4일차 (0) | 2022.01.12 |
자바 학습 & 복습 3일차 (0) | 2022.01.11 |