最近在java學習中本人遇到啦一個讓人困難、頭疼的問題,那就是 do....while 循環結構。
這是我遇到的一道題:
用戶循環輸入4位會員號,判斷是否中獎,輸入n結束操作。
程序開始時生成一個0-9的隨機數字,當用戶會員號的百位與十位的差值與隨機數字相等時爲中獎。
我先來說一下我第一眼看到這個題的思路吧
首先,要輸入一個四位數,既然這樣就要導入一下工具包:Scanner input=new Scanner(System.in);
接着要考慮到百位和十位,int baiwei=(a/100)%10; int shiwei=(a/10)%100;
這是我這個小白寫的,大神就別嘲笑啦。
這時要考慮百位與十位之間的差:int cha=baiwei-shiwei;
然後要對比一下這個cha與隨機產生的隨機數(int random=(int)(Math.random()*10);)是否相等,若相等即爲中獎,不等則不中獎。
這時候就到啦關鍵的時候 do...while 循環啦。
一開始我將do的位置放錯啦,結果出來的全是死循環,程序沒有辦法正常運行,然而本人的辦法只有一個,
那就是平心靜氣,我在慢慢的摸索中找對啦do的位置,然後程序就如預算一樣成功運行。
本人的理解就是,在 do....while 循環中最重要的是找對循環的位置,這樣才能讓程序正常運行。
下面就是本人對這次作業的一個答案,希望大神能給予指教。
import java.util.Scanner;
public class Kehou2 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
String shuru;
do{
System.out.println("請您輸入一個四位數");
int a=input.nextInt();
int baiwei=(a/100)%10;
int shiwei=(a/10)%100;
int cha=baiwei-shiwei;
int random=(int)(Math.random()*10);
if(cha==random){
System.out.println("恭喜您中獎啦");
}else{
System.out.println("抱歉您未中獎");
}
System.out.println("請問您還要繼續輸入嗎? yes/no");
shuru=input.next();
}while(shuru.equals("yes"));
if(shuru.equals("no")){
System.out.println("祝您下次中獎");
}
本篇博文只爲作者本人原創。