什么';我的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。
您正在提取一个由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";
}
}
}