String [] names= {"김선호","나나","이효리","엄정화","김완선","보아","유재석","하하","김연진","이진"};
Scanner sc=new Scanner(System.in);
int cnt;
String search; //입력할 성씨
boolean flag;
while(true)
{
System.out.println("성을 입력해주세요(종료 입력시 종료)");
search=sc.nextLine();
if(search.equals("종료"))
{
System.out.println("종료합니다");
break;
}
flag=false;
cnt=0; //검색할때마다 초기화가 필요
for(int i=0;i<names.length;i++)
{
if(names[i].startsWith(search))
{
cnt++;
System.out.println(i+":"+names[i]);
flag=true;
}
}
if(flag) //flag==true
System.out.println("\t총"+cnt+"명 검색");
else //!flag
System.out.println(search+"씨 성을 가진 사람은 없습니다");
}
=> 가장 작은 숫자를 앞으로 보내기
Arrays.sort(배열이름);
위 코드 풀어서 작성
int [] arr= {5,22,64,72,4,3,16,85,93,45};
//i ={5,22,64,72,4,3,16,85,93} 기준 데이터는 길이-1 까지만 비교
//j ={22,64,72,4,3,16,85,93,45} 비교 데이터는 2번째부터 마지막까지 비교
for(int i=0;i<arr.length-1;i++)
{
//비교하는 데이터는 기준값 다음부터 끝까지
// j:비교하는 값이기에 i보다 하나 더 커야함
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int i=0;i<arr.length/2;i++)
{
int temp=arr[i];
arr[i]=arr[arr.length-i-1]; // 0일때 9번과 바꾸고 //1일때 8과 바꾸고 .....
arr[arr.length-i-1]=temp;
}
int [] lotto= new int[6];
for(int i=0;i<lotto.length;i++)
{
//1~45까지의 랜덤 수 발생
lotto[i]=(int)(Math.random()*45)+1;
//중복처리
for(int j=0;j<i;j++) //비교값 반복문
{
if(lotto[i]==lotto[j])
{
i--; //같은 번지에 다시 값을 구하기 위해서
break; //중복된다면 현재 중복문을 벗어나서 위 반복문으로 돌아가야함 // -> i++로 이동
//continue;라면 두번째 for문(j++)에서 반복되기 때문에 안된다
//여기서는 굳이 break 안해줘도 작동은 하지만 중복처리 로직에서는 일반적으로 break; 사용
}
}
}
int [] arr= {5,22,64,72,4,3,16,85,93,45};
//출력
System.out.println("원래 데이터");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
//데이터 거꾸로 변경하기
for(int i=0;i<arr.length/2;i++)
{
int temp=arr[i];
arr[i]=arr[arr.length-i-1]; // 0일때 9번과 바꾸고 //1일때 8과 바꾸고 .....
arr[arr.length-i-1]=temp;
}
//출력
System.out.println("순서 바꾼 후 데이터");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
//selection sort(오름차순 정렬)
//Arrays.sort(arr):배열 arr을 정렬한다
//선택정렬: 가장 작은 숫자를 앞으로 보내자 -> 중첩for문
//int [] arr= {5,22,64,72,4,3,16,85,93,45};
//i ={5,22,64,72,4,3,16,85,93} 기준 데이터는 길이-1 까지만 비교
//j ={22,64,72,4,3,16,85,93,45} 비교 데이터는 2번째부터 마지막까지 비교
//기준데이터는 0부터 끝에서 두번째까지
for(int i=0;i<arr.length-1;i++)
{
//비교하는 데이터는 기준값 다음부터 끝까지
// j:비교하는 값이기에 i보다 하나 더 커야함
for(int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
System.out.println("오름차순 정렬 후 데이터");
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int [] lotto= new int[6];
for(int i=0;i<lotto.length;i++)
{
//1~45까지의 랜덤 수 발생
lotto[i]=(int)(Math.random()*45)+1;
//중복처리
for(int j=0;j<i;j++) //비교값 반복문
{
if(lotto[i]==lotto[j])
{
i--; //같은 번지에 다시 값을 구하기 위해서
break; //중복된다면 현재 중복문을 벗어나서 위 반복문으로 돌아가야함 // -> i++로 이동
//continue;라면 두번째 for문(j++)에서 반복되기 때문에 안된다
//여기서는 굳이 break 안해줘도 작동은 하지만 중복처리 로직에서는 일반적으로 break; 사용
}
}
}
//Arrays.sort(lotto);//오름차순 정렬
System.out.println("오름차순 정렬");
for(int i=0;i<lotto.length-1;i++)
{
for(int j=i+1;j<lotto.length;j++)
{
if(lotto[i]>lotto[j])
{
int temp=lotto[i];
lotto[i]=lotto[j];
lotto[j]=temp;
}
}
}
//출력
for(int i=0;i<lotto.length;i++)
{
System.out.printf("%5d",lotto[i]);
}
System.out.println();
}
public static void main(String[] args) {
// 몇 장 구입할건지 입력하여 여러개 출력
Scanner sc=new Scanner(System.in);
int guip; //몇 장,얼마 구일할지
int [] lotto= new int[6];
//System.out.println("로또 몇 장을 구입 할지 입력해주세요"); 횟수
System.out.println("로또 얼마 구입 할지 입력해주세요"); //금액
guip=sc.nextInt();
//예외조항
//if(guip<1) 횟수
if(guip<1000) //금액
{
//System.out.println("***구입횟수가 부족합니다***"); 횟수
System.out.println("***구입 금액이 부족합니다***"); //금액
return; //메인함수 자체를 빠져나간다
}
//for(int n=0;n<guip;n++) { 횟수
for(int n=0;n<guip/1000;n++) { //금액
System.out.printf("%d회: ",n+1);
for(int i=0;i<lotto.length;i++)
{
//1~45까지의 랜덤 수 발생
lotto[i]=(int)(Math.random()*45)+1;
//중복처리
for(int j=0;j<i;j++) //비교값 반복문
{
if(lotto[i]==lotto[j])
{
i--;
break;
}
}
}
//Arrays.sort(lotto);//오름차순 정렬
System.out.println("오름차순 정렬");
for(int i=0;i<lotto.length-1;i++)
{
for(int j=i+1;j<lotto.length;j++)
{
if(lotto[i]>lotto[j])
{
int temp=lotto[i];
lotto[i]=lotto[j];
lotto[j]=temp;
}
}
}
//출력
for(int i=0;i<lotto.length;i++)
{
System.out.printf("%5d",lotto[i]);
}
System.out.println();
}//첫번째 for문 끝
}
public static void main(String[] args) {
/* 숫자를 입력 받아서 배열의 몇번째에 있는지 출력하고 없을 경우 없습니다 라고 출력
* (0이면 종료)
* 입력값: 11
* 11은 2번째에 있어요!
* 입력값: 100
* 100은 없습니다
* 입력값: 0
* 종료합니다(프로그램종료)*/
Scanner sc= new Scanner(System.in);
int [] arrNums= {1,64,72,18,39,546,27,95,101,30,50};
int num;
boolean flag;
while(true)
{
System.out.print("입력값: ");
num=sc.nextInt();
if(num==0)
{
System.out.println("\t종료합니다(프로그램종료)");
break;
}
flag=false;
for(int i=0;i<arrNums.length;i++)
{
if(num==arrNums[i])
{
flag=true;
System.out.println("\t"+num+"은 "+(i+1)+"번째에 있어요!");
}
}
if(!flag)
System.out.println("\t"+num+"은 없습니다");
}
}