C# 之后做。。。while循环未处理的异常:System.FormatException:输入字符串的格式不正确
所以我的实验室应该问你想要多少个问题,然后给你那么多随机生成的数学题。在结束时,它应该问你是否想再问一组问题,或者你可以选择回答y或n。当我停止代码时,一切正常,但我还需要得到正确的打印总量,当我添加代码时,我得到未处理的异常。我的问题来自括号前的最后三行:C# 之后做。。。while循环未处理的异常:System.FormatException:输入字符串的格式不正确,c#,C#,所以我的实验室应该问你想要多少个问题,然后给你那么多随机生成的数学题。在结束时,它应该问你是否想再问一组问题,或者你可以选择回答y或n。当我停止代码时,一切正常,但我还需要得到正确的打印总量,当我添加代码时,我得到未处理的异常。我的问题来自括号前的最后三行: using System; class MainClass { public static void Main (string[] args) { var rnd = new Random(); string
using System;
class MainClass {
public static void Main (string[] args) {
var rnd = new Random();
string exit = "";
double score = 0;
double total = 0;
double percent = 0;
Console.WriteLine("How many problems do you want in a set?");
double problem = Convert.ToDouble(Console.ReadLine());
do{
for(double i = 1; i<=problem; i++){
double num1 = rnd.Next(1,9);
double num2 = rnd.Next(1,9);
Console.Write("Problem {0} : {1}*{2}=? ", i, num1, num2);
double answer = Convert.ToDouble(Console.ReadLine());
if(num1*num2 == answer){
score++;
}//end if
total++;
}
Console.Write("Another set? <y/n>");
exit = Console.ReadLine();
Console.ReadLine();
}while(exit!="n");
percent = score/total;
Console.WriteLine(" {} correct out of {} is a {}%",score,total,percent);
Console.WriteLine("done");
}//end main
}//end class
使用系统;
类主类{
公共静态void Main(字符串[]args){
var rnd=新随机数();
字符串exit=“”;
双倍得分=0;
双倍合计=0;
百分之二=0;
WriteLine(“您希望一组中有多少个问题?”);
双重问题=Convert.ToDouble(Console.ReadLine());
做{
对于(double i=1;i对参数{0}、{1}、{2}进行编号,或者现在可以使用字符串插值,如下所示:
Console.WriteLine($"{score} correct out of {total} is a {percent}%");
需要的0、1和2这里还有一些测试供您使用。当此行执行时:double problem=Convert.ToDouble(Console.ReadLine());
,输入“十”。一般来说,您应该期望用户不会按照您希望的方式进行操作。因此:Convert.ToDouble
或double.Parse
是解析用户输入(以及int
s等的类似函数)的糟糕选择。请阅读double.TryParse
(和int.TryParse
)等。)你也可以考虑把提示放在一个单独的函数中。当你问“另一组”时会发生什么,有人回答“否”(或者甚至是“N”)?这能回答你的问题吗?哦,谢谢!我盯着它太难了,忘记把数字放进去了。
Console.WriteLine(" {} correct out of {} is a {}%",score,total,percent);