老師有一段代碼有問題。大家看一下我分析的對(duì)不對(duì)?
圖片中 for(int i=(month-1)*4;i<month*4;i++){
}這個(gè) i<month*4;寫錯(cuò)了, 如果輸入的數(shù)值是33-35的話,運(yùn)行會(huì)報(bào)錯(cuò),數(shù)組下標(biāo)越界,
應(yīng)該這樣寫 for(int i=(month-1)*4;i<conteentList.lengthh;i++){}
圖片中 for(int i=(month-1)*4;i<month*4;i++){
}這個(gè) i<month*4;寫錯(cuò)了, 如果輸入的數(shù)值是33-35的話,運(yùn)行會(huì)報(bào)錯(cuò),數(shù)組下標(biāo)越界,
應(yīng)該這樣寫 for(int i=(month-1)*4;i<conteentList.lengthh;i++){}
2020-09-07
舉報(bào)
2020-09-12
或者你這樣寫也行
2021-12-19
2021-11-23
2020-09-14
這是我自己后面寫的以及運(yùn)行結(jié)果,那個(gè)數(shù)組下標(biāo)越界的解決方法 我自己寫的稍微麻煩了一點(diǎn) 。
package com.Imooc;
import java.util.Scanner;
/**
?*?
?* @author?
?* 功能:慕課網(wǎng)Java課程包含35周學(xué)習(xí)計(jì)劃,輸入周數(shù)
?* 輸出:輸出本月(4周)與當(dāng)周的學(xué)習(xí)任務(wù)
?*
?*/
public class Day11Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] contentList=new String[35];//定義一個(gè)字符串?dāng)?shù)組長度為35并初始化
contentList[0]="【第一周】java環(huán)境搭建與語法入門";
contentList[1]="【第二周】java語法之循環(huán),數(shù)組與方法";
contentList[2]="【第三周】面向?qū)ο笾庋b與繼承";
contentList[3]="【第四周】面向?qū)ο笾畣卫J脚c多態(tài)";
contentList[4]="【第五周】常用工具類(上)";
contentList[5]="【第六周】常用工具類(下)";
contentList[6]="【第七周】常用工具類(下)";
contentList[7]="【第八周】前端基礎(chǔ)之HTML與CSS";
contentList[8]="【第九周】前端基礎(chǔ)之javaScript與綜合案例";
contentList[9]="【第十周】java web基礎(chǔ)";
contentList[10]="【第十一周】Java web基礎(chǔ)";
contentList[11]="【第十二周】常用功能與過濾器";
contentList[12]="【第十三周】監(jiān)聽器與實(shí)戰(zhàn)項(xiàng)目";
contentList[13]="【第十四周】監(jiān)聽器與實(shí)戰(zhàn)項(xiàng)目";
contentList[14]="【第十五周】MySQL基礎(chǔ)";
contentList[15]="【第十六周】MySQL基礎(chǔ)";
contentList[16]="【第十七周】java數(shù)據(jù)庫開發(fā)基礎(chǔ)";
contentList[17]="【第十八周】框架前置知識(shí)";
contentList[18]="【第十九周】Mybatis基礎(chǔ)";
contentList[19]="【第二十周】MyBatis實(shí)現(xiàn)OA系統(tǒng)項(xiàng)目實(shí)戰(zhàn)";
contentList[20]="【第二十一周】MyBatis實(shí)現(xiàn)OA系統(tǒng)項(xiàng)目實(shí)戰(zhàn)";
contentList[21]="【第二十二周】Linux環(huán)境搭建與Redis應(yīng)用 ";
contentList[22]="【第二十三周】Spring基礎(chǔ)";
contentList[23]="【第二十四周】Spring基礎(chǔ)";
contentList[24]="【第二十五周】Spring基礎(chǔ)";
contentList[25]="【第二十六周】SMM開發(fā)社交網(wǎng)站";
contentList[26]="【第二十七周】Spring Boot電商項(xiàng)目實(shí)戰(zhàn)";
contentList[27]="【第二十八周】Spring Boot電商項(xiàng)目實(shí)戰(zhàn)";
contentList[28]="【第二十九周】面試";
contentList[29]="【第三十周】多線程與分布式";
contentList[30]="【第三十一周】多線程與分布式";
contentList[31]="【第三十二周】Spring Cloud基礎(chǔ)";
contentList[32]="【第三十三周】Spring Cloud電商實(shí)戰(zhàn)";
contentList[33]="【第三十四周】Spring Cloud電商實(shí)戰(zhàn)";
contentList[34]="【第三十五周】Zookeeper+Dubbo應(yīng)用與面試";
System.out.println("你要開始第幾周學(xué)習(xí)啦!直接輸入數(shù)字吧:");
Scanner a=new Scanner(System.in);//定義一個(gè)整型week用來接收輸入的周數(shù)
int week=a.nextInt();
int month=0;//定義一個(gè)變量mouth代表月份,初始值為0
while(week<=0||week>=36) {
System.out.println("輸入的周數(shù)超出范圍,請(qǐng)重新輸入:");
week=a.nextInt();
}
if(week<=35&&week>0) {
if(week%4==0) {
month=week/4;
}else{
month=week/4+1;
}
//System.out.println(month);
System.out.println("以下是你本月的學(xué)習(xí)計(jì)劃,√代表當(dāng)周的學(xué)習(xí)");
System.out.println("===============================");
if(week==33||week==34||week==35) {
for(int i=(month-1)*4;i<contentList.length;i++) {
if(i==week-1) {
System.out.println("√"+contentList[i]);
}
else {
System.out.println("? "+contentList[i]);
}
}
}
if(week>0&&week<32) {
for(int i=(month-1)*4;i<month*4;i++) {
if(i==week-1) {
System.out.println("√"+contentList[i]);
}
else {
? ?System.out.println("? "+contentList[i]);
}
}
? ? ?}
}
}
}
2020-09-14
我用了個(gè)笨辦法
2020-09-13
你這樣寫也不對(duì),如果輸入不是最后一月的,循環(huán)會(huì)直接循環(huán)到結(jié)尾,可以這樣:
2020-09-07