day03
一.選擇語句
1.選擇語句:switch
?? 格式:
? ? ? switch(表達(dá)式){
? ? ? ?? case 常量值1:
? ? ? ?? 執(zhí)行語句1;
? ? ? ?? break;
? ? ? ?? case 常量值2:
? ? ? ?? 執(zhí)行語句2;
? ? ? ?? break;
? ? ? ?? case 常量值3:
? ? ? ?? 執(zhí)行語句3;
? ? ? ?? break;
? ? ? ?? case 常量值4:
? ? ? ?? 執(zhí)行語句4;
? ? ? ?? break;
? ? ? ?? .....
? ? ? ?? default:
? ? ? ?? 執(zhí)行語句n;
? ? ? ?? break;
? ? ? }
?? 2.執(zhí)行流程:
? ? ? ?? 1.拿著我們所填的表達(dá)式去和下面每一個(gè)case后面的常量值去做匹配,匹配上誰,就走
? ? ? ? ?? 對應(yīng)的執(zhí)行語句
? ? ? ?? 2.如果以上所有的case都沒有匹配上,直接走default對應(yīng)的執(zhí)行語句
?? 3.注意:case后面的常量值的類型要和我們所填寫的表達(dá)式的類型一致
? ? ?? break是結(jié)束switch語句結(jié)構(gòu)的
代碼演示:
?? public class Demo01Switch {
?? public static void main(String[] args) {
? ? ?? int i = 5;
? ? ?? switch (i) {
? ? ? ? ?? case 1:
? ? ? ? ? ? ?? System.out.println("濤哥最帥!");
? ? ? ? ? ? ?? break;
? ? ? ? ?? case 2:
? ? ? ? ? ? ?? System.out.println("波多小姐最美");
? ? ? ? ? ? ?? break;
? ? ? ? ?? case 3:
? ? ? ? ? ? ?? System.out.println("大橋也很美!");
? ? ? ? ? ? ?? break;
? ? ? ? ?? case 4:
? ? ? ? ? ? ?? System.out.println("柳巖也很美!");
? ? ? ? ? ? ?? break;
? ? ? ? ?? default:
? ? ? ? ? ? ?? System.out.println("他們都挺喜歡濤哥!");
? ? ? ? ? ? ?? break;
? ? ?? }
?? }
?? ========================================================
練習(xí):
?? public static void main(String[] args) {
?? //定義月份變量嗡呼,判斷季節(jié)
?? int month = 6;
?? //switch語句實(shí)現(xiàn)選擇
?? switch(month) {
? ? ?? case 1:
? ? ? ? ?? System.out.println("冬季");
? ? ? ? ?? break;
? ? ?? case 2:
? ? ? ? ?? System.out.println("冬季");
? ? ? ? ?? break;
? ? ?? case 3:
? ? ? ? ?? System.out.println("春季");
? ? ? ? ?? break;
? ? ?? case 4:
? ? ? ? ?? System.out.println("春季");
? ? ? ? ?? break;
? ? ?? case 5:
? ? ? ? ?? System.out.println("春季");
? ? ? ? ?? break;
? ? ?? case 6:
? ? ? ? ?? System.out.println("夏季");
? ? ? ? ?? break;
? ? ?? case 7:
? ? ? ? ?? System.out.println("夏季");
? ? ? ? ?? break;
? ? ?? case 8:
? ? ? ? ?? System.out.println("夏季");
? ? ? ? ?? break;
? ? ?? case 9:
? ? ? ? ?? System.out.println("秋季");
? ? ? ? ?? break;
? ? ?? case 10:
? ? ? ? ?? System.out.println("秋季");
? ? ? ? ?? break;
? ? ?? case 11:
? ? ? ? ?? System.out.println("秋季");
? ? ? ? ?? break;
? ? ?? case 12:
? ? ? ? ?? System.out.println("冬季");
? ? ? ? ?? break;
? ? ?? default:
? ? ? ? ?? System.out.println("你輸入的月份數(shù)字有誤");
? ? ? ? ?? break;
?? }
}
}
4.沒有break會出現(xiàn)case的穿透性
?? 如果沒有break就一直往下穿透執(zhí)行,直到遇到break或者程序結(jié)束了為止
? 代碼演示:
?? public class Demo03Case {
?? public static void main(String[] args) {
? ? ?? int i = 3;
? ? ?? switch (i) {
? ? ? ? ?? case 1:
? ? ? ? ? ? ?? System.out.println("濤哥最帥!");
? ? ? ? ?? case 2:
? ? ? ? ? ? ?? System.out.println("波多小姐最美");
? ? ? ? ?? case 3:
? ? ? ? ? ? ?? System.out.println("大橋也很美!");
? ? ? ? ?? case 4:
? ? ? ? ? ? ?? System.out.println("柳巖也很美!");
? ? ? ? ? ? ?? break;
? ? ? ? ?? default:
? ? ? ? ? ? ?? System.out.println("他們都挺喜歡濤哥!");
? ? ?? }
?? }
}
二.for循環(huán)
循環(huán)之for循環(huán)
? ?? 1.格式:
? ? ? ? for(初始化變量;比較;變量變值){
? ? ? ? ?? 循環(huán)體
? ? ? ? }
? ?? 2.執(zhí)行流程:
? ? ? ?? 1.先初始化變量
? ? ? ?? 2.拿著這個(gè)變量去比較
? ? ? ?? 3.如果比較成功,返回true,那么直接走循環(huán)體
? ? ? ?? 4.變量的值變化(步進(jìn)表達(dá)式)
? ? ? ?? 5.接著比較,比較返回true,接著走循環(huán)體
? ? ? ?? 6.接著步進(jìn)表達(dá)式
? ? ? ?? 7.接著比較,直到比較返回false,那么整個(gè)循環(huán)結(jié)束了
? ?? 3.代碼演示:
? ? ? ? for(int i = 1;i<=10;i++){
? ? ? ? ?? System.out.println("我愛Java");
? ? ? ? }
? ? ? ? 或者:
? ? ? ? for(int i = 0;i<10;i++){
? ? ? ? ?? System.out.println("我愛Java");
? ? ? ? }
for循環(huán)練習(xí)
練習(xí)1:求出1-100之間的偶數(shù)和
? /*
? 1+2+3+4+5+6+7..+100
? 需求:1-100之間的偶數(shù)和
? 步驟:
?? 1.定義一個(gè)變量去接收兩個(gè)數(shù)的和
?? 2.利用for循環(huán)去將1-100之間的數(shù)循環(huán)出來
?? 3.拿著循環(huán)出來的每一個(gè)數(shù)去做判斷,是否為偶數(shù)(數(shù)%2==0),如果是余數(shù)是0,證明是偶數(shù),相加
? ?? 將加完的結(jié)果重新賦值給那個(gè)變量
?? 4.輸出這個(gè)接收和的變量
*/
public class Demo03_ForTest {
?? public static void main(String[] args) {
? ? ?? int sum = 0;
? ? ?? for (int i = 1;i<=100;i++){
? ? ? ? ?? if (i%2==0){
? ? ? ? ? ? ?? sum = sum+i;
? ? ? ? ?? }
? ? ?? }
? ? ?? System.out.println("和為:"+sum);
?? }
}
練習(xí)2:求出所有的水仙花數(shù)
/*
? 求出所有的水仙花數(shù)
? ? 水仙花數(shù):3位數(shù)
? ? ? ? ? ? 個(gè)位的立方+十位的立方+百位的立方 = 原數(shù)
? ? ? ? ? ? 153:27+125+1=153
? ? ? ? ? ? 3 = 153%10;
? ? ? ? ? ? 5 = 153/10%10;
? ? ? ? ? ? 1 = 153/100
? 步驟:
? ?? 1.利用for循環(huán)去將所有的3位數(shù)循環(huán)出來
? ?? 2.循環(huán)的過程中,拿出每一個(gè)被循環(huán)出來的數(shù)去判斷
? ?? 3.求出循環(huán)出來的數(shù)的個(gè)位? 十位 ? 百位
? ?? 4.如果個(gè)位的立方+十位的立方+百位的立方 == 原數(shù),直接輸出
*/
public class Demo04_ForTest {
?? public static void main(String[] args) {
? ? ?? for (int i = 100;i<=999;i++){
? ? ? ? ?? int ge = i%10;
? ? ? ? ?? int shi = i/10%10;
? ? ? ? ?? int bai = i/100;
? ? ? ? ?? if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
? ? ? ? ? ? ?? System.out.println(i);
? ? ? ? ?? }
? ? ?? }
?? }
}
練習(xí)3:
? /*
? 統(tǒng)計(jì)水仙花個(gè)數(shù):
? ?? 步驟:
? ? ? ? 1.定義變量去統(tǒng)計(jì)水仙花的個(gè)數(shù)
? ? ? ? 2.利用for循環(huán)去將所有的3位數(shù)循環(huán)出來
? ? ? ? 3.循環(huán)的過程中,拿出每一個(gè)被循環(huán)出來的數(shù)去判斷
? ? ? ? 4.求出循環(huán)出來的數(shù)的個(gè)位? 十位 ? 百位
? ? ? ? 5.如果個(gè)位的立方+十位的立方+百位的立方 == 原數(shù),統(tǒng)計(jì)個(gè)數(shù)的變量加1
*/
public class Demo05_ForTest {
?? public static void main(String[] args) {
? ? ?? int count = 0;
? ? ?? for (int i = 100;i<=999;i++){
? ? ? ? ?? int ge = i%10;
? ? ? ? ?? int shi = i/10%10;
? ? ? ? ?? int bai = i/100;
? ? ? ? ?? if (ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
? ? ? ? ? ? ?? count++;
? ? ? ? ?? }
? ? ?? }
? ? ?? System.out.println("水仙花的個(gè)數(shù)為:"+count);
?? }
}
三.while循環(huán)
1.格式:
? ? ? 初始化變量;
? ? ? while(比較){
? ? ? ? 循環(huán)體;
? ? ? ? 步進(jìn)表達(dá)式;
? ? ? }
2.執(zhí)行流程:
? ? ? ? 1.初始化變量
? ? ? ? 2.比較
? ? ? ? 3.如果比較返回true,進(jìn)入循環(huán)體
? ? ? ? 4.步進(jìn)表達(dá)式
? ? ? ? 5.接著比較,直到比較返回false,while循環(huán)結(jié)束了!
3.代碼演示:
?? public class Demo01_While {
?? public static void main(String[] args) {
? ? ?? /*
? ? ? ? 循環(huán)10次,性感濤哥,在線發(fā)牌
? ? ? ? */
? ? ?? int i = 0;
? ? ?? while(i<10){
? ? ? ? ?? System.out.println("性感濤哥,在線發(fā)牌"+i);
? ? ? ? ?? i++;
? ? ?? }
?? }
}
while循環(huán)練習(xí)
練習(xí)1:
? /*
? 需求:求出1-100之前的和利用while循環(huán)
*/
public class Demo02_WhileTest {
?? public static void main(String[] args) {
? ? ?? int sum = 0;
? ? ?? int i = 1;
? ? ?? while(i<=100){
? ? ? ? ? ? ?? sum+=i;//sum = sum+i;
? ? ? ? ?? i++;
? ? ?? }
? ? ?? System.out.println(sum);
?? }
}
練習(xí)2:
/*
? 紙的厚度是0.1毫米? 珠穆朗瑪峰的高度是8844430毫米
? 問:折多少次能折出一個(gè)珠穆朗瑪峰來
? 步驟:
? ? ? 1.定義變量去統(tǒng)計(jì)折的次數(shù)
? ? ? 2.定義變量表示紙的厚度
? ? ? 3.定義變量表示山峰的高度
? ? ? 4.循環(huán)比較,比較紙的厚度是否小于等于山峰的高度,如果符合條件,就折紙? *2
? ? ? 5.統(tǒng)計(jì)次數(shù)的變量++
*/
public class Demo03_WhileTest {
? ? public static void main(String[] args) {
? ? ? ? int count = 0;
? ? ? ? double paper = 0.1;
? ? ? ? double zf = 8844430;
? ? ? ? while(paper<=zf){
? ? ? ? ? paper*=2;
? ? ? ? ? count++;
? ? ? ? ? ? System.out.println(paper);
? ? ? ? }
? ? ? ? System.out.println(count);
四.死循環(huán)
/*
? 死循環(huán):一直循環(huán)
? 條件:一直為true
*/
public class DieFor {
? ? public static void main(String[] args) {
? ? ? ? /*for (int i = 0;i<10;){
? ? ? ? ? ? System.out.println("岳不群自宮了~");
? ? ? ? }*/
? ? ? ? while(true){
? ? ? ? ? ? System.out.println("孫悟空是最純潔的猴");
? ? ? ? }
? ? }
}
五.嵌套for循環(huán)
1.概述:for中有for
2.執(zhí)行流程:
? ? 先執(zhí)行外層for循環(huán),再執(zhí)行內(nèi)層for循環(huán),內(nèi)存for循環(huán)就一直循環(huán),直到內(nèi)層for循環(huán)結(jié)束,外層for循環(huán)進(jìn)行下一次? ? 循環(huán).... 直到外層for循環(huán)結(jié)束了,那么整個(gè)所有的循環(huán)都結(jié)束了?
3.代碼演示:
? ? public class ForAndFor {
? ? public static void main(String[] args) {
? ? ? ? for (int fen = 0; fen < 60; fen++) {
? ? ? ? ? ? for (int miao = 0;miao<60;miao++){
? ? ? ? ? ? ? ? System.out.println(fen+"分"+miao+"秒");
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
六.Random隨機(jī)數(shù)
? ? 1.概述:是一個(gè)Java自帶的類
? ? 2.數(shù)據(jù)類型:引用數(shù)據(jù)類型
? ? 3.作用:隨機(jī)一個(gè)數(shù)
? ? 4.使用:
? ? ? ? ? 4.1 導(dǎo)包:java.util.Random
? ? ? ? ? 4.2 創(chuàng)建對象:Random 變量名 = new Random();
? ? ? ? ? 4.3 調(diào)用方法:
? ? ? ? ? ? ? ? nextInt()-->是在int型范圍內(nèi)隨機(jī)
? ? ? ? ? ? ? ? nextInt(int fanwei):在指定范圍內(nèi)隨機(jī)一個(gè)數(shù)
? ? ? ? ? ? ? ? ? ? 0-(fanwei-1)
? ? ? ? ? ? ? ? 需求:從100-999之間隨機(jī)一個(gè)數(shù)
? ? ? ? ? ? ? ? ? nextInt(900)+100? ? (0-899)+100-->整體都加100,所有的數(shù)往后挪100位
? ? ? ? ? ? ? ? ? ? ? 從1-100之間隨機(jī): nextInt(100)+1
? ? ? 5.代碼演示
? ? public class Demo02Random {
? ? ? public static void main(String[] args) {
? ? ? ? Random rd = new Random();
? ? ? ? int num = rd.nextInt();
? ? ? ? System.out.println(num);
? ? ? ? System.out.println("------------------------------");
? ? ? ? int result = rd.nextInt(10);
? ? ? ? System.out.println(result);
? ? ? ? System.out.println("------------------------------");
? ? ? ? int result1 = rd.nextInt(900)+100;
? ? ? ? System.out.println(result1);?
? ? }
}
猜數(shù)字小游戲
/*
? 猜數(shù)字小游戲:隨機(jī)一個(gè)1-100之間的數(shù)
? ? ? 步驟
? ? ? ? 1.創(chuàng)建Scanner對象,調(diào)用nextInt()方法輸入一個(gè)整數(shù)
? ? ? ? 2.創(chuàng)建Random對象,調(diào)用nextInt(100)+1
? ? ? ? 3.如果我們錄入的數(shù)和隨機(jī)的數(shù)相等:輸出:恭喜你,中獎(jiǎng)了
? ? ? ? ? 如果我們錄入的數(shù)比隨機(jī)的數(shù)大:猜大了!
? ? ? ? ? 如果我們錄入的數(shù)比隨機(jī)的數(shù)小:猜小了!
*/
public class Demo03RandomTest {
? ? public static void main(String[] args) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? Random rd = new Random();
? ? ? ? int rdNumber = rd.nextInt(100)+1;
? ? ? ? System.out.println(rdNumber);
? ? ? ? while(true){
? ? ? ? ? ? System.out.println("請你輸入一個(gè)(1-100)之間的數(shù):");
? ? ? ? ? ? int scNumber = sc.nextInt();
? ? ? ? ? ? //判斷
? ? ? ? ? ? if (scNumber>rdNumber){
? ? ? ? ? ? ? ? System.out.println("對不起,您猜大了!");
? ? ? ? ? ? }else if(scNumber<rdNumber){
? ? ? ? ? ? ? ? System.out.println("對不起,您猜小了!");
? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? System.out.println("恭喜你,中獎(jiǎng)了");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
}