사용중인 방법이 좋지 않습니다. 우선, b는 항상 a보다 큽니다. 왜냐하면 여러분은 1과 2를 위치가 아닌 길이 함수에 넣기 때문입니다. 예를 들어 숫자 12345를 사용하면 a는 1이되고 b는 12가됩니다. 또한 하위 문자열 메서드는 호출 될 때 계산되므로 하위 문자열을 다시 호출하지 않고 정의한 후에 매개 변수를 수정할 수 없습니다. 이를 다음과 같이 생각하십시오. 메소드의 결과를 변수에 지정하면 메소드는 그 결과를 계산해야하므로 다른 결과가 필요하면 다시 계산해야합니다. 그러나 Substring 메서드를 전혀 사용할 필요가 없습니다. C#에서는 문자열을 인덱스로 액세스 할 수 있으므로 첫 번째 요소에 대해 myString[0]
이라고 말할 수 있습니다. C#의 인덱스는 0으로 인덱싱되므로 첫 번째 항목은 인덱스 0입니다. 당신이 확인하고 무엇을 위해, 당신은과 같이, 루프를 사용할 수 있습니다
if (newNumber != 0)
{
string a = newNumber.ToString();
for(int i = 1; i < a.Length; i++)
{
int input1 = Convert.ToInt32(a[i-1]);
int input2 = Convert.ToInt32(a[i]);
if (input1 >= input2) //Note the reversed condition
{
return false; //Gives the false result
}
}
return true; //Computation finished, so the number is increasing
}
}
이 방법은 빨리, 그리고 내가 제대로 질문을 이해 한 경우, 당신이 원하는 정확히 꽤 많은 일을해야한다. 또한 루프의 본문에서 "newNumber"를 변경하지 않아서 왜 while 루프를 사용했는지 확실하지 않습니다. 프로그램은 무언가를 멈출 때까지 루프에서 계산할 것입니다. if 문을 사용해야합니다. While 루프는 본문을 반복해서 반복하여 매번 계산을 시작하기 전에 조건을 테스트하고 if 문은 한 번만 실행됩니다. while 루프는 무한히 실행될 가능성이 있기 때문에 일반적으로 if 문을 사용할 수 있습니다. 조건이 충족되지 않는 상태가되어 영원히 반복 될 수 있기 때문입니다.
확인보고. – Blender
숙제 같은 냄새가납니다. –
다음 자릿수가 적 으면 false를 반환하고, 그렇지 않으면 루프를 종료하고 true입니다. – kenny