如何理解for循環里的代碼,思索了好長時間有一些繞不過彎。求問!
import java.util.Scanner;
public class HelloWorld {
? ?public static void main(String[] args) {
? ? ? ?//創建String數組,并為每一個元素賦值。賦值內容為第幾周+學習內容
? ? ? ?String[] contentList = new String[35];
? ? ? ?contentList[0] = "【第1周】環境搭建與語法入門";
? ? ? ?contentList[1] = "【第2周】Java語法之循環、數組與方法";
? ? ? ?contentList[2] = "【第3周】面向對象之封裝與繼承";
? ? ? ?contentList[3] = "【第4周】面向對象之單例模式與多態";
? ? ? ?contentList[4] = "【第5周】常用工具類(上)";
? ? ? ?contentList[5] = "【第6周】常用工具類(下)";
? ? ? ?contentList[6] = "【第7周】常用工具類(下)";
? ? ? ?contentList[7] = "【第8周】前端基礎之HTML與CSS";
? ? ? ?contentList[8] = "【第9周】前端基礎之JavaScript與綜合案例";
? ? ? ?contentList[9] = "【第10周】Java Web基礎";
? ? ? ?contentList[10] = "【第11周】Java Web基礎";
? ? ? ?contentList[11] = "【第12周】常用功能與過濾器";
? ? ? ?contentList[12] = "【第13周】監聽器與項目實戰";
? ? ? ?contentList[13] = "【第14周】監聽器與項目實戰";
? ? ? ?contentList[14] = "【第15周】MySQL基礎";
? ? ? ?contentList[15] = "【第16周】MySQL基礎";
? ? ? ?contentList[16] = "【第17周】Java數據庫開發基礎";
? ? ? ?contentList[17] = "【第18周】框架前置知識";
? ? ? ?contentList[18] = "【第19周】MyBatis基礎";
? ? ? ?contentList[19] = "【第20周】MyBatis實現OA系統項目實戰";
? ? ? ?contentList[20] = "【第21周】MyBatis實現OA系統項目實戰";
? ? ? ?contentList[21] = "【第22周】Linux環境搭建與Redis應用";
? ? ? ?contentList[22] = "【第23周】Spring基礎";
? ? ? ?contentList[23] = "【第24周】Spring基礎";
? ? ? ?contentList[24] = "【第25周】Spring基礎";
? ? ? ?contentList[25] = "【第26周】SSM開發社交網站";
? ? ? ?contentList[26] = "【第27周】Spring Boot電商項目實戰";
? ? ? ?contentList[27] = "【第28周】Spring Boot電商項目實戰";
? ? ? ?contentList[28] = "【第29周】面試";
? ? ? ?contentList[29] = "【第30周】多線程與分布式";
? ? ? ?contentList[30] = "【第31周】多線程與分布式";
? ? ? ?contentList[31] = "【第32周】Spring Cloud基礎";
? ? ? ?contentList[32] = "【第33周】Spring Cloud電商實戰";
? ? ? ?contentList[33] = "【第34周】Spring Cloud電商實戰";
? ? ? ?contentList[34] = "【第35周】Zookeeper+Dubbo應用與面試";
? ? ? ?//提示信息
? ? ? ?System.out.print("您要開始第幾周學習啦,直接輸入數字吧:");
? ? ? ?//設置變量存儲接收到的數據
? ? ? ?int num = new Scanner(System.in).nextInt();
? ? ? ?//計算今天是幾月(1-月第一周、4-月第4周)
? ? ? ?int month = 0;
? ? ? ?month = ?num/4;
? ? ? ?if (num % 4 == 0){
? ? ? ? ? ?month = num / 4 ;
? ? ? ?}else {
? ? ? ? ? ?month = num/4 + 1;
? ? ? ?}
? ? ? ?System.out.println(month);
? ? ? ?//計算輸入的周是這個月的第幾周
? ? ? ?for (int i=(month-1)*4;i<month*4;i++){
? ? ? ? ? ?try {
? ? ? ? ? ? ? ?if (i == (num-1)){
? ? ? ? ? ? ? ? ? ?System.out.println("√"+contentList[i]);
? ? ? ? ? ? ? ?}else{ ?
? ? ? ? ? ? ? ? ? ?System.out.println(contentList[i]);
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ? ? ?catch (ArrayIndexOutOfBoundsException e ){
? ? ? ? ? ? ? ?System.out.println("未發現有"+(i+1)+"周學習計劃");
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?//提示信息
? ? ? ?System.out.println("以下是您本月的學習計劃, √ 代表當周學習任務");
? ? ? ?System.out.println("=======================================");
? ? ? ?//利用for循環,找到數組中對應這個月的內容輸出
? ? ? ?//根據當前月第幾周,在輸出此行時,前面添加“√”
? ?}
}
2025-01-16
for?(int?i=(month-1)*4;i<month*4;i++)
如果month是2,那就是2月,那我們是不是從第5周到第8周,所以i = month-1=1*4=4,i<8,? i 指的是下標:實際上就是5-8周