내 문제에서 알 수 있듯이 C#을 처음 접했습니다. 나는 기초를 배우기 위해 "Røverspråk"번역기를 만들고있다. "Røverspråk"은 Pig Latin과 같습니다. 자음 + o + 자음과 모든 자음을 교환하는 규칙이 있습니다. 지금까지 그렇게 좋았고 그 부분은 효과가 있습니다. 내 문제는 내가 다시 번역하려고 할 때 온다.for 루프 복제본 출력
"totimom"은 "tim"을 반환하지만 대신 "ttttttttttttttttttttttttttttttttttttttiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
을 반환합니다. 그래서 그것은 모든 편지를 38 번 반환합니다 - 나는 konsonant-string (norwegian konsonants)에있는 것과 같은 금액을 사용합니다.
문자열 kons = "BCDFGHJKLMNPQRSTVWZbcdfghjklmnpqrstvwz";
왜 모든 것이 38 번 반환됩니까? 제가 말할 수있는 한, for 루프는 번역가처럼 분리되어 있습니다. 나에게 문제를 제공하는 코드 : 작동
public void OversettTilbake(string vok, string kons)
{
string nyText = textBox2.Text.ToString().ToLower();
for (int e = 0; e < nyText.Length; e++)
{
for (int f = 0; f < kons.Length; f++)
{
if (nyText[e] == kons[f])
{
newText2.Add(nyText[e].ToString());
e = e + 2;
}
}
for (int g = 0; g < kons.Length; g++)
{
if (nyText[e] != kons[g])
{
newText2.Add(nyText[e].ToString());
}
}
}
}
번역자 :
public int Oversetter(string text, string vok, string kons)
{
int Count = 0;
char tom = ' ';
for (int e = 0; e < text.Length; e++)
{
for (int i = 0; i < kons.Length; i++)
{
if (text[e] == kons[i])
{
newText.Add((text[e]).ToString() + "o" + (text[e]).ToString().ToLower());
Count = Count + 1;
}
}
for (int i = 0; i < vok.Length; i++)
{
if (text[e] == vok[i])
{
newText.Add((text[e]).ToString());
Count = Count + 1;
}
}
if (text[e] == tom)
{
newText.Add(text[e].ToString() + (text[e].ToString()));
}
for (int i = 0; i < tegn.Length; i++)
{
if (text[e] == tegn[i])
{
newText.Add((text[e]).ToString());
}
}
}
return Count;
}
편집 : 여기에 모든 환상적인 입력 주셔서 감사합니다. 필자는 정말 많이 배웠습니다. @cahinton에서이 솔루션은 완벽하게 작동하는 것, 그리고 하드에 그런게 나를 이해하고 구현하기 :
for(var e = 0; e < nyText.Length; e += 1) {
newText2.Add(nyText[e].ToString);
if(kons.Contains(nyText[e])) {
e += 2;
}
}
EDIT2을 : 나는 여기에 찬성 투표 할 수있는 nesessary 명성이 없습니다. 하지만 100 만 번 감사드립니다! 나는 다음 주에 한 두 가지 답변을 얻을 것으로 예상했기 때문에 여기에 커뮤니티에 압도당한 메신저를 말해야합니다. 다시 한 번 감사드립니다!
, * 결코 *, ** NEVER * * 'for' 루프 내에서 루프를 변경 가능하게 변경하십시오! 대신 while 루프를 사용하십시오. –
@ThorstenDittmar 결코? 다음 요소를 건너 뛰려면 어떻게해야합니까? 나는 이제 부울을 추가로 필요로한다. – Gusdor
안녕하세요! 빠른 답장을 보내 주셔서 감사합니다. 그래도 그것에 대해 자세히 설명해 주시겠습니까? – DyreVaa