亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

新手提問,求解答~

數組的定義為什么不能放在自定義的方法里面,而要放在main方法里面?代碼如下,https://img1.sycdn.imooc.com//5ae532490001b93904450472.jpg

正在回答

2 回答

不是數組放哪的問題,是整個程序邏輯有問題

import?java.util.*;
public?class?HelloWorld?{
????
????//完成?main?方法
????public?static?void?main(String[]?args)?{
????????HelloWorld?hw?=?new?HelloWorld();
????????int[]?scores?=?{89,-23,64,91,119,52,73};
????????hw.Sort(scores);
????????
????}
????
????//定義方法完成成績排序并輸出前三名的功能
????public?void?Sort(int[]?scores){
????????int[]?newSocres?=new?int[scores.length];
????????int?length?=0;
????????for(int?i=0;i<scores.length;i++)
????????????if(scores[i]>=0?&&?scores[i]<=100)
????????????????newSocres[length++]?=?scores[i];
????????Arrays.sort(newSocres);
????????System.out.println("考試成績的前三名為:");
????????for(int?i=newSocres.length-1;i>=newSocres.length-3;i--)
????????????System.out.println(newSocres[i]);
????}
????
????
????
????
????
????
????
????
????
}


0 回復 有任何疑惑可以回復我~
#1

我不太冷 提問者

恩,我的代碼還沒實現排序輸出,看了你的代碼懂了?,F在對于我的問題就是執行時我是先調用了sores,但沒對他定義。所以要放在前面。然后我調試了一下你的代碼,把數組定義放在Sore方法里面就顯示錯誤,我這樣理解對嗎?如果不對 ,可否詳細講解一下,代碼加個注解 ,非常感謝~~
2018-04-29 回復 有任何疑惑可以回復我~

重新開一樓吧,我們的目的是要求出符合條件的前三名的成績,因為初始定義的數組有不符合條件([0,100])的成績,所以我們重新開個數組來保存"[0,100]的成績",也就是newScores,然后我們再從newScores找出前三名的成績,由于sort默認是升序排列,所以我們需要對newScores數組中的元素逆序輸出。數組放哪不重要,如果放里面的話也可以啊

import?java.util.*;
public?class?HelloWorld?{
?????
????//完成?main?方法
????public?static?void?main(String[]?args)?{
????????HelloWorld?hw?=?new?HelloWorld();
????????hw.Sort();
????}
?????
????//定義方法完成成績排序并輸出前三名的功能
????public?void?Sort(){
????????int[]?scores?=?{89,-23,64,91,119,52,73};???//初始化數組
????????int[]?newSocres?=new?int[scores.length];???//存儲符合條件的數組
????????int?length?=0;????//由于不一定每個數都符號條件,用個變量存儲符號條件的數的個數
????????for(int?i=0;i<scores.length;i++)??//遍歷初始化數組,將其中符號條件的數組存到newSocres
????????????if(scores[i]>=0?&&?scores[i]<=100)
????????????????newSocres[length++]?=?scores[i];
????????Arrays.sort(newSocres);?//對符號條件的數組排序
????????System.out.println("考試成績的前三名為:");
????????for(int?i=newSocres.length-1;i>=newSocres.length-3;i--)??//逆序輸出
????????????System.out.println(newSocres[i]);
????}

你看,兩種代碼都是可以的,區別在于,如果在主函數中定義數組,在Sort方法實現時就需要將主函數的數組傳遞過去;如果在Sort方法定義數組,可以直接在方法中用。

望采納

0 回復 有任何疑惑可以回復我~
#1

我不太冷 提問者

明白了 很感謝*^*
2018-04-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第一季(IDEA工具)升級版
  • 參與學習       1167472    人
  • 解答問題       18748    個

0基礎萌新入門第一課,從Java環境搭建、工具使用、基礎語法開始

進入課程

新手提問,求解答~

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號