幾個(gè)問題
張三oracle考試成績未達(dá)到自己的目標(biāo)域醇。為了表明自己勤奮學(xué)習(xí)的決心将鸵,他決定寫一百遍“好好學(xué)習(xí)误堡,天天向上界赔!”
循環(huán)結(jié)構(gòu)語法
循環(huán)結(jié)構(gòu)就是反復(fù)的執(zhí)行同一段代碼丢习,直到符合某個(gè)條件后退出,循環(huán)結(jié)構(gòu)分為兩種:while循環(huán)和for循環(huán)淮悼。
特點(diǎn):先判斷版保,再執(zhí)行
一個(gè)練習(xí)
老師每天檢查張三的學(xué)習(xí)任務(wù)是否合格萝招,如果不合格岭皂,則繼續(xù)進(jìn)行摘完。
老師給張三安排的每天的學(xué)習(xí)任務(wù)為:上午閱讀教材,學(xué)習(xí)理論部分羹令,下午上機(jī)編程鲤屡,掌握代碼部分。
- 分析是否存在重復(fù)操作
- 使用while循環(huán)實(shí)現(xiàn)
- 確定循環(huán)條件和循環(huán)操作
- 套用while語法寫出代碼
-
檢查循環(huán)是否能夠退出
image.png
boolean b = true;//標(biāo)志
while(b){//當(dāng)b為true時(shí)福侈,一直循環(huán)
System.out.println("合格了嗎执俩?(y/n):");
Scanner sc = new Scanner(System.in);
String res = sc.next();
if(res.equals("n")){//相當(dāng)于res=="n"
System.out.println("不合格,繼續(xù)學(xué)習(xí)");
}else{
System.out.println("合格");
b = false;
}
}
System.out.println("程序結(jié)束");
練習(xí)二
2012年培養(yǎng)學(xué)員10萬人癌刽,每年增長20%,請問按此增長速度尝丐,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到100萬人显拜?
提示:循環(huán)條件和循環(huán)操作分別是什么?
2爹袁、2013年培訓(xùn)學(xué)員數(shù)量 = 100000 * (1 + 0.2 )
3远荠、int year = 2012;
double students = 100000;
while …
public class whileDemo2 {
public static void main(String[] args) {
// 2012年培養(yǎng)學(xué)員10萬人,每年增長20%失息,
// 請問按此增長速度譬淳,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到100萬人档址?
int year = 2012;
double personCount = 100000;
while(personCount <= 1000000)
{
//增加年數(shù)
year++;
//增加人數(shù)(1.2)
personCount = personCount*1.2;
System.out.println(year+"年"+personCount+"人");
}
System.out.println(year);
}
}
另一個(gè)問題(do-while循環(huán))
經(jīng)過幾天的學(xué)習(xí),老師給張三一道測試題邻梆,
讓他先上機(jī)編寫程序完成守伸,
然后老師檢查是否合格。如果不合格浦妄,則繼續(xù)編寫尼摹。……
特點(diǎn):先執(zhí)行剂娄,再判斷
while循環(huán)和do-while循環(huán)的區(qū)別
- 執(zhí)行次序不同
- 初始情況不滿足循環(huán)條件時(shí)
while循環(huán)一次都不會(huì)執(zhí)行
do-while循環(huán)不管任何情況都至少執(zhí)行一次
作業(yè)
實(shí)現(xiàn)整數(shù)反轉(zhuǎn) 用戶輸入任意一個(gè)數(shù)字比如12345蠢涝,程序輸出54321
要求用循環(huán)實(shí)現(xiàn),并練習(xí)調(diào)試技巧
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入一個(gè)數(shù)");
int num = scanner.nextInt();
//12345模10能到最后一位阅懦,輸出它和二,再除以10,1234
//重復(fù)上一步
while(num>0)
{
//12345模10能到最后一位,輸出它耳胎,再除以10,1234
System.out.print(num % 10);
num = num / 10;
}
for循環(huán)
問題回顧 輸出100次“好好學(xué)習(xí)惯吕!”
for循環(huán)的語法和執(zhí)行順序
問題
循環(huán)輸入某同學(xué)高考考試的5門課成績,并計(jì)算平均分
分析
循環(huán)次數(shù)固定
使用for循環(huán)結(jié)構(gòu)的步驟
1场晶、分析循環(huán)條件和循環(huán)操作
2混埠、套用for語法寫出代碼
3、檢查循環(huán)是否能夠退出
循環(huán)條件:循環(huán)的次數(shù)不足5诗轻,繼續(xù)循環(huán)
循環(huán)操作:錄入成績钳宪,計(jì)算成績之和
public class whileDemo2 {
public static void main(String[] args) {
//循環(huán)輸入某同學(xué)高考考試的5門課成績,并計(jì)算平均分
Scanner scanner = new Scanner(System.in);
System.out.println("輸入學(xué)生姓名");
String name = scanner.next();
int score = 0;
int total = 0;
for(int i = 1; i <= 5; i++)
{
System.out.println("請輸入"+i+"成績");
score = scanner.nextInt();
total = total + score;
}
System.out.println(name+"的平均成績是"+total/5);
}
}
輸出如圖所示加法表
使用for循環(huán):
1扳炬、循環(huán)初始化:i = 0吏颖;j = 輸入值
2、循環(huán)條件:i<=輸入值
3恨樟、循環(huán)操作:計(jì)算i+j
4半醉、循環(huán)變量的改變:i++,j--
public class whileDemo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入一個(gè)值");
int num = scanner.nextInt();//6
int j = num;
for(int i = 0; i <= num; i++)
{
System.out.println(i+"+"+j+"="+num);
j--;
}
}
}