반응형
랜덤으로 숫자가 출력되는 상황에서 내가 출력되지 않았으면 하는 어떠한 숫자와
랜덤으로 출력되는 숫자가 중복되는 경우에 그 숫자는 출력되지 않도록 하는 코드를 쉽게 알아보도록 하겠습니다.
Button button;
int count = 20;
int a[] = new int[count];
Random r = new Random();
간단하게 필요한 것들을 onCreate()하기전에 입력해줍니다.
count는 난수를 생성할 개수이고, a[]는 정수의 20개의 아이템을 가진 집합입니다.
랜덤함수를 중복제거하는 방법도 for문을 이용할 것인데
for(int i = 0; i < 2; i++){
i = 1;
a[i] = r.nextInt(최대값-최소값+1)+최소값;
if(a[i] == 출력되지 않았으면 하는 숫자){
i--;
Log.d(TAG, "제외숫자와 같은 랜덤 숫자가 나왔었음");
}else{
Log.d(TAG, "랜덤숫자 뽑음 : " + a[i]);
break;
}
}
r.nextInt(최대값-최소값+1)+최소값으로 코드를 작성하게 되면
최소값~최대값 사이에 해당하는 랜덤한 값이 나오게 됩니다.
예를 들어 아래 처럼 코드를 입력했다고 가정해봅시다.
for(int i = 0; i < 2; i++){
i = 1;
a[i] = r.nextInt(10-0+1)+0;
if(a[i] == 5){
i--;
Log.d(TAG, "제외숫자와 같은 랜덤 숫자가 나왔었음");
}else{
Log.d(TAG, "랜덤숫자 뽑음 : " + a[i]);
break;
}
}
최소값 0 ~ 최대값 10까지 임의로 나오는 a[1] 값이 내가 출력되지 않았으면 5 값과 일치했을 때 i -- 인하여 다시 i = 0으로 돌아갑니다.
또 최소값 0 ~ 최대값 10까지 임의로 나오는 a[1] 값이 내가 출력되지 않았으면 5 값과 일치했을 때 i -- 인하여 다시 i = 0으로 돌아가는 과정이 일치하지 않을 때까지 반복되다보니 정수 5 가 나올 수가 없습니다.
public class MainActivity extends AppCompatActivity {
private static final String TAG = "tag";
Button button;
int count = 20;
int a[] = new int[count];
Random r = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
for(int i = 0; i < 2; i++){
i = 1;
a[i] = r.nextInt(10-0+1)+0;
if(a[i] == 5){
i--;
Log.d(TAG, "제외숫자와 같은 랜덤 숫자가 나왔었음");
}else{
Log.d(TAG, "랜덤숫자 뽑음 : " + a[i]);
break;
}
}
}
});
}
}
반응형
'안드로이드 스튜디오 앱 개발 > 개념 안드로이드 스튜디오' 카테고리의 다른 글
[Android Studio] java for문에 대해 쉽게 알아보자 그리고 for문을 이용한 반복작업 (0) | 2023.07.03 |
---|---|
안드로이드 스튜디오 타이틀바 버튼(메뉴 아이템)들 추가하기 (menu item) [Android Studio] (0) | 2023.06.30 |
안드로이드 스튜디오 Handler 사용방법, Handler를 이용한 실행 대기 시키기 [Android Studio] (0) | 2023.06.24 |
자바(JAVA) 언어에 대해서 확실하게 알아보자!! 그리고 자바의 객체 지향 프로그래밍이란? (0) | 2023.06.22 |
안드로이드 스튜디오 드로어블 객체로 배경 지정하기(자바 코드) (0) | 2023.06.20 |