我正在输入数字,例如1或高数字,并想要这样的结果:"1,2 hop!", "1,2,3 hop!"
这是针对Visual Studio中的C#,我试图将数组放入变量中,但无法获得预期的结果。
class Program
{
static void Main(string[] args)
{
int angka;
Console.WriteLine("Masukkan Angka : ");
angka = Console.Read();
for( int i = 0; i<angka;i++)
{
Console.WriteLine(angka.ToString()+ " + Hop !");
int y = 0;
if ((int)y == angka)
{
break;
}
}
}
}
我希望2的输出是1,2 hop!
,但实际输出是这样的:
Masukkan Angka :
3
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
51 Hop !
答案 0 :(得分:1)
一个可能的问题解决方案是...
int angka;
Console.WriteLine("Masukkan Angka : ");
angka =Convert.ToInt32(Console.ReadLine());
string result =$"{string.Join(",",Enumerable.Range(1,angka).ToList())} hop!";
您使用过Console.Read(),它为您提供enter的ascii值(如DarkSquirrel42所评论)。除此之外,您对所需的输出和所应用的逻辑还不太清楚。
喜欢...
Console.WriteLine(angka.ToString()+ " + Hop !"); //you always print angka which is not changed and remain same for all output..thus it's print always 51(enter's ascii)
还有
int y = 0; //Generally we don't declare variables within a single loop beacuse on each iteration it will be reinitialize.
和
if ((int)y == angka) //this will break it in first iteration...explicit conversion is not requied
{
break;
}
答案 1 :(得分:1)
尝试下面的代码
int angka;
Console.WriteLine("Masukkan Angka :");
angka = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= angka; i++)
{
Console.Write(i.ToString() + (i == angka ? " hop!" : ","));
}
Console.ReadKey();
答案 2 :(得分:0)
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Masukkan Angka : ");
int angka = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i <= angka; i++)
{
Console.Write(i + ", ");
}
Console.Write(" hop! ");
Console.ReadKey();
}
}
答案 3 :(得分:0)
您在这里遇到了几个问题...
在循环中,您声明int y
,然后将其强制转换为int
:(int)y
,这完全没有必要。此外,您将0分配给y
并再次检查t angka
,除非您将0分配给angka
,否则它将始终为false,但在这种情况下,将不会执行循环(由于条件i < angka
)。因此这段代码可以完全删除。
您想要的结果表明您希望编写用逗号分隔的连续数字,因此您需要在循环内使用Console.Write(i + ",")
,因为angka
在循环内是常量,然后写入此变量控制台将每次打印相同的数字。循环后,您应该呼叫Console.Write(" hop!");
答案 4 :(得分:0)
怎么样?
class Program
{
static void Main(string[] args)
{
int angka = 0;
Console.WriteLine("Masukkan Angka : ");
while (angka < 1 || angka > 9)
{
int.TryParse(Console.ReadLine(), out angka);
if (angka < 1 || angka > 9)
{ Console.WriteLine("Please enter a number between 1 and 9"); }
}
System.Text.StringBuilder resultString = new System.Text.StringBuilder();
for (int i = 1; i <= angka; i++)
{
resultString.Append(i.ToString());
resultString.Append(i < angka ? "," : " hop!");
}
Console.WriteLine(resultString.ToString());
}
}
答案 5 :(得分:0)
尝试一下
int angka;
Console.WriteLine("Masukkan Angka : ");
angka = Convert.ToInt32(Console.ReadLine());
for (int i = 1; i < angka; i++)
{
if(i==1)
{
Console.Write(i);
}
else
Console.Write(","+i);
}
Console.WriteLine(" hop!");
Console.ReadKey();