#c# #for-loop #increment
#c# #цикл for #увеличение
Вопрос:
Итак, у меня есть метод подсчета очков, который запускается после того, как мы сыграем, и снова, если пользователь захочет повторить игру. Я показываю оценки в нем.
Например
Первая попытка :
Game 1 : He scored 20
затем пользователь решает повторить игру, получает другой результат. Затем я хочу, чтобы это отображалось.
Вторая попытка :
Game 1 : He scored 20
Game 2 : He scored 10
Третья попытка: и т. Д
Game 1 : He Scored 20
Game 2 : He scored 10
Game 3 : He scored 5
Я попытался использовать цикл for внутри foreach, а затем поместить i в другой int
public void HighScore()
{
int gameList = 1;
foreach (var item in Points)
{
for (int i = 1; i < Points.Count; i )
{
gameList = i ;
}
Console.WriteLine($"{name} : Game {gameList} Score : {item} : Level [{GameLevel}]");
}
}
//Points — это список Int
// Я хочу изменить игровые номера Game 1, 2, 3, 4,.
Ответ №1:
Нет необходимости в for
цикле:
public void HighScore()
{
int gameList = 1;
foreach (var item in Points)
{
Console.WriteLine($"{name} : Game {gameList} Score : {item} : Level [{GameLevel}]");
gameList ;
}
}
Ответ №2:
// use like this
gameList ;
// instead of doing this
gameList = i ;
Я надеюсь, что теперь вы исправите.
Ответ №3:
Сначала вам не нужен цикл for.Создайте класс для точки доступа для каждой игры, чтобы регулярно хранить их, как указано выше.
public class Score
{
public Score(int point ,int game)
{
Point = point;
Game = game;
}
public int Point { get; set; }
public int Game { get; set; }
}
А затем создайте глобальную переменную
List<Score> scores = new List<Score>();
таким образом, вы можете сохранить свой счет и количество игр.
int point = 10;//any number
int lastGame = (scores.Any()) ? scores.Last().Game : 0;//this is about first game if no score its first game
scores.Add(new Score(point, lastGame = 1));
вы можете показать пользователю, что с циклом удобно.
foreach(var score in scores){
Console.WriteLine($"Game {score.Game} Point: {score.Point}");
}
Game Score
1 10
2 20
Ответ №4:
Попробуйте ниже.
Используйте gameList
вместо gameList = i ;
унарного оператора увеличения
public static void HighScore()
{
int gameList = 1;
List<int> Points = new List<int>() { 10,20,39,40,50};
foreach (var item in Points)
{
Console.WriteLine($"Game {gameList} Score : {item}");
gameList ;
}
}
Комментарии:
1. Вы это тестировали?
2. Вы получили ошибку? Очевидно, что вывод не будет таким же, но это «Унарный оператор увеличения» » — это то, что он ищет.
3. Вы каждый раз добавляете длину списка к номеру игры, поэтому игры пронумерованы 5, 9, 13 и т.д. Я думаю, что OP хотел 1, 2, 3.
4. @iakobski хорошо заметил. Спасибо. Обновил мой ответ.