什么';我的C#For循环和If语句有错吗

本文关键字:语句 If 循环 我的 C#For 什么 | 更新日期: 2023-09-27 17:58:59

int LetterCount = 0;
string strText = "Debugging";
string letter;
for (int i = 0; i <strText.Length; i++)
{
  letter = strText.Substring(0, 9);
  if(letter == "g")
  {    
    LetterCount++;
    textBox1.Text = "g appears " + LetterCount + " times";
  }
}

所以,我正在做这个教程,我已经在这个练习上坚持了大约4个小时。我不知道我的For Loop出了什么问题。

练习的重点是让我的程序告诉我调试这个词中有多少g。但你可能已经明白了。无论如何,我甚至不确定我是否有正确的代码来告诉我这一点,因为我认为我需要更改for循环(I<(部分的第二部分。

但我的问题是,它根本没有注册"if letter=="g"。因为根据我的本地窗口,它说字母=调试,这会让我认为g应该在我的程序上注册24次,我想(因为str.length有9个字母长?(但无论我做什么,它都注册为0。

什么';我的C#For循环和If语句有错吗

您正在提取一个由9个字符组成的字符串。它永远不会等于"g"(只有一个(。以下是我的做法。

int count = 0;
foreach (char c in strText)
{
    if (c == 'g')
       count++;
}

使用for循环:

for (int i = 0; i < strText.Length; i++)
{
    if (strText[i] == 'g')
       count++;
}

查看字符串的文档。子字符串(x,y(。

基本上:

letter = strText.Substring(0, 9);

不是给你一封信。每次,它都会为您提供字符串strText的所有9个字符您可能需要考虑使用变量i作为传递给Substring的值之一

(我故意没有给你完整的答案,因为你似乎想理解,所以,如果我给出的指针不能让你明白,请告诉我,我会扩展我的答案=(

试试这个:

    for (int i = 0; i <strText.Length; i++)
    {
       if(strText[i] == 'g')
       {
         LetterCount++;
       }
    }
    textBox1.Text = "g appears " + LetterCount + " times";

问题是,当你与"g"进行比较时,你会看到整个字符串。通过指定一个索引,您可以告诉它查看字符串中的特定字符。此外,我删除了您的子字符串,因为它似乎没有做任何事情。

for循环中根本没有使用i

你是说吗

letter = strText.Substring(i, 1);

好吧,你要取一个长9个字符的子字符串,并将其与"g"进行比较。这是不平等的。

你应该试试:

letter = strText.Substring(i,1);

因为String.Substring(int,int(接受两个参数:偏移量和要接受的金额。

在您的情况下,letter = strText.Substring(0, 9);将简单地将字母的值分配给"调试"。如果你想单独检查每个字母,你需要写letter = strText.Substring(i, 1)

您可能正在寻找这样的东西:

int LetterCount = 0;
string strText = "Debugging";
string letter;
for (int i = 0; i <strText.Length; i++)
{
  letter = strText.Substring(i, 1);
  if(letter == "g")
  {    
    LetterCount++;
    textBox1.Text = "g appears " + LetterCount + " times";
  }
}

letter=strText.Substring(0,9(;

此时,'letter'的值为"Debugging",因为您要获取整个字符串。

请尝试letter = strText[i],以便隔离单个字母。

Rob说了什么。

试试这样的东西:

int    gCount = 0;
string s      = "Debugging";
for ( int i = 0; i <strText.Length; i++)
{
  if ( s[i] == 'g' ) ++gCount ;
}
textBox1.Text = "g appears " + gCount+ " times";
namespace runtime
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int lettercount = 0;
            string strText = "Debugging";
            string letter;

            for (int i = 0; i < strText.Length; i++)
            {
                letter = strText.Substring(i,1);
                if (letter == "g")
                {
                    lettercount++;
                }
            }
            textBox1.Text = "g appear " + lettercount + " times";
        }
    }
}