第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

輸入姓名ID,年齡,再打印輸出,為什么我的代碼只能輸出年齡?

輸入姓名ID,年齡,再打印輸出,為什么我的代碼只能輸出年齡?

飲歌長嘯 2018-12-06 16:05:51
class Program { static void Main(string[] args) { int i = 0; string strName = ""; string stId = ""; string ages = ""; Student[] stus = new Student[5]; Console.WriteLine("請輸入學員信息:"); for (i = 0; i < stus.Length; i++) { Console.WriteLine("請輸入第{0}個學員的姓名:", i + 1); stus[i] = new Student(); while (true) { Console.Write("姓名:"); strName = Console.ReadLine(); stus[i] = new Student(); if (stus[i].setStuName(strName)) { break; } else { Console.WriteLine("您輸入的學員姓名不正確!"); } } while (true) { Console.Write("ID:"); stId = Console.ReadLine(); stus[i] = new Student(); if (stus[i].setStuId(stId)) { break; } else { Console.WriteLine("你輸入的學號不正確!"); } } while (true) { Console.Write("年齡:"); ages = Console.ReadLine(); stus[i] = new Student(); if (stus[i].setStuAge(ages)) { break; } else { Console.WriteLine("你輸入的年齡錯誤!"); } } } for (int x = 0; x < stus.Length; x++) { stus[x].showStuInfo(stus[x].stuId, stus[x].stuName, stus[x].stuAge); } } class Student { public int stuId; public string stuName; public int stuAge; public Student() { stuId = 0; stuName = ""; stuAge = 0; } /// <summary> /// 顯示學員信息 /// </summary> public void showStuInfo(int _id, string _name, int _age) { Console.WriteLine("{0}+{1}+{2}", _id, _name, _age); } /// <summary> /// 設置學員ID /// </summary> /// <param name="_id">必須是小于100的正整數(shù)</param> /// <returns></returns> public bool setStuId(string _id) { int value = int.Parse(_id); if (value > 0 && value < 100) { stuId = value; return true; } else { return false; } } /// <summary> /// 設置學員姓名 /// </summary> /// <param name="_name">不能為空,不能為admin</param> /// <returns></returns> /// if (stus[i].setStuName(strName)) public bool setStuName(string _name) { if (_name == "" || _name == "admin") { return false; } else { stuName = _name; return true; } } /// <summary> /// 設置學員的年齡 /// </summary> /// <param name="_age">必須在18-60(含)之間</param> /// <returns></returns> public bool setStuAge(string _age) { int value = int.Parse(_age); if (value >= 18 && value <= 60) { stuId = value; return true; } else { return false; } } }
查看完整描述

3 回答

?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

將三個while循環(huán)中的stus[i] =new Student(); 這句代碼注釋就行。

用new關(guān)鍵字創(chuàng)建對象時,都會重新開辟內(nèi)存空間。每new一個對象就分配了一個不同的對象,假設i=0的這次循環(huán)中,伱總共給stus[0]分配了四次對象,相當于stus[0]=空對象;stus[0]=只有姓名的對象;stus[0]=只有Id的對象;stus[0]=只有年齡的對象;因為只有年齡的對象在最后,所以stus[0]=只有年齡的對象。

查看完整回答
反對 回復 2019-01-21
?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

你在每個輸入項目的時候,都重新 new 一個 Student 對象,在第三次的時候,已經(jīng)將原來的對象給替換了。

其實,最后,只有最后的那個 Student 對象,當然沒有姓名和編號了。

將三個 while 中的 new 對象一行刪掉吧。

查看完整回答
反對 回復 2019-01-21
?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

我個人感覺,還是把哪些字段組合到一塊,寫成一個數(shù)組方便

查看完整回答
反對 回復 2019-01-21
  • 3 回答
  • 0 關(guān)注
  • 377 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號