C# 数组索引和检索值生成逻辑错误
我有两门不同的课C# 数组索引和检索值生成逻辑错误,c#,C#,我有两门不同的课 class TollGate { public void Check(int []numbers, int Token) { int i; for (i = 0; i < numbers.Length; i++) { int s = numbers[i]; if ( Token > s) { Cons
class TollGate
{
public void Check(int []numbers, int Token)
{
int i;
for (i = 0; i < numbers.Length; i++)
{
int s = numbers[i];
if ( Token > s)
{
Console.WriteLine("You Got To Wait");
return;//this works
}
else
{
Console.WriteLine("Hold On Printing a Pass\n\"Happy Trip\"");//this doesn't
return;
}
}
}
}
class Program
{
public static void Main()
{
int[] numbers = new int[5] {1, 2, 3, 4, 5};
Random rnd = new Random();
int r = rnd.Next(numbers.Length);
int Token = (numbers[r]);
Tollgate T = New TollGate();
T.Check(numbers, Token);
Console.WriteLine("Cool");
Console.WriteLine("Hot");
Console.WriteLine("Freezing");
}
}
等级收费站
{
公共无效检查(int[]数字,int令牌)
{
int i;
对于(i=0;is)
{
Console.WriteLine(“你必须等待”);
return;//这是有效的
}
其他的
{
Console.WriteLine(“暂停打印通行证\n\'Happy Trip\”);//这不正确
返回;
}
}
}
}
班级计划
{
公共静态void Main()
{
int[]number=新的int[5]{1,2,3,4,5};
随机rnd=新随机();
int r=rnd.Next(数字.长度);
int标记=(数字[r]);
收费站T=新收费站();
支票(号码、代币);
控制台。WriteLine(“酷”);
控制台。写入线(“热”);
控制台。写入线(“冻结”);
}
}
我不能使用两个返回语句吗。如何让它停止,只给出一次消息,但它只是随着循环一起运行,显示的次数与循环的次数相同 这可能是您想要的:
public void Check(int[] numbers, int Token) {
for (int i = 0; i < numbers.Length; i++) {
if ( Token > numbers[i]) {
Console.WriteLine("You Got To Wait");
return;
}
}
}
public static void Main() {
int[] numbers = new int[] {1, 2};
int[] tokens = new int[] {1,2,3,4,5};
Random rnd = new Random();
int r = rnd.Next(tokens.Length);
int Token = (tokens[r]);
Tollgate T = new TollGate();
T.Check(numbers, Token);
}
公共无效检查(int[]数字,int令牌){
for(int i=0;i数字[i]){
Console.WriteLine(“你必须等待”);
返回;
}
}
}
公共静态void Main(){
int[]数字=新的int[]{1,2};
int[]标记=新的int[]{1,2,3,4,5};
随机rnd=新随机();
int r=rnd.Next(tokens.Length);
int-Token=(tokens[r]);
收费站T=新收费站();
支票(号码、代币);
}
这可能是您想要的:
public void Check(int[] numbers, int Token) {
for (int i = 0; i < numbers.Length; i++) {
if ( Token > numbers[i]) {
Console.WriteLine("You Got To Wait");
return;
}
}
}
public static void Main() {
int[] numbers = new int[] {1, 2};
int[] tokens = new int[] {1,2,3,4,5};
Random rnd = new Random();
int r = rnd.Next(tokens.Length);
int Token = (tokens[r]);
Tollgate T = new TollGate();
T.Check(numbers, Token);
}
公共无效检查(int[]数字,int令牌){
for(int i=0;i数字[i]){
Console.WriteLine(“你必须等待”);
返回;
}
}
}
公共静态void Main(){
int[]数字=新的int[]{1,2};
int[]标记=新的int[]{1,2,3,4,5};
随机rnd=新随机();
int r=rnd.Next(tokens.Length);
int-Token=(tokens[r]);
收费站T=新收费站();
支票(号码、代币);
}
因为for中的逻辑很难理解,所以我试着猜你想做什么
class Tollgate
{
public void Check(int []numbers, int Token)
{
int i;
//change this for to the actual logic that you need
//for (int numbers[i] = 0; numbers[i] < numbers.Length; numbers[i]++)
for (i = 0; i < numbers.Length; i++)
{
int s = numbers[i];
if ( Token > s)
{
Console.WriteLine("You Got To Wait");
}
else
{
//handle else logic
//if need to stop the loop when this condition is met, insert a "break;" (condition is Token <= s)
}
}
}
}
class That
{
public static void Main()
{
int[] numbers = {1, 2, 3, 4, 5};
Random rnd ;
int r ;
int Token ;
Tollgate T ;
rnd = new Random();
r = rnd.Next(numbers.Length);
Token = numbers[r];
T = new TollGate();
T.Check(numbers, Token);
}
}
等级收费站
{
公共无效检查(int[]数字,int令牌)
{
int i;
//将此更改为所需的实际逻辑
//for(整数[i]=0;数字[i]s)
{
Console.WriteLine(“你必须等待”);
}
其他的
{
//处理其他逻辑
//如果需要在满足此条件时停止循环,请插入一个“break;”(条件是Token),因为for中的逻辑很难理解,我试图猜测您要做什么
class Tollgate
{
public void Check(int []numbers, int Token)
{
int i;
//change this for to the actual logic that you need
//for (int numbers[i] = 0; numbers[i] < numbers.Length; numbers[i]++)
for (i = 0; i < numbers.Length; i++)
{
int s = numbers[i];
if ( Token > s)
{
Console.WriteLine("You Got To Wait");
}
else
{
//handle else logic
//if need to stop the loop when this condition is met, insert a "break;" (condition is Token <= s)
}
}
}
}
class That
{
public static void Main()
{
int[] numbers = {1, 2, 3, 4, 5};
Random rnd ;
int r ;
int Token ;
Tollgate T ;
rnd = new Random();
r = rnd.Next(numbers.Length);
Token = numbers[r];
T = new TollGate();
T.Check(numbers, Token);
}
}
等级收费站
{
公共无效检查(int[]数字,int令牌)
{
int i;
//将此更改为所需的实际逻辑
//for(整数[i]=0;数字[i]s)
{
Console.WriteLine(“你必须等待”);
}
其他的
{
//处理其他逻辑
//如果需要在满足此条件时停止循环,请插入“中断”(条件是Token,正如King King提到的,您可以向循环中添加一个return
语句,以在该点停止函数。如果您想退出循环但不退出函数,请添加一个continue
语句,而不是return
。这将跳出循环,在实际代码中非常有用,即使您的示例e很简单,不需要它
bool waiting = false;
if ( Token > numbers[i]) {
Console.WriteLine("You Got To Wait");
waiting = true;
break;
}
... // add any additional logic here. can check if(waiting)
正如King King提到的,您可以向循环中添加一个return
语句,以在该点停止函数。如果您想退出循环但不退出函数,请添加一个continue
语句,而不是return
。这会跳出循环,在实际代码中非常有用,即使示例代码足够简单我不需要它
bool waiting = false;
if ( Token > numbers[i]) {
Console.WriteLine("You Got To Wait");
waiting = true;
break;
}
... // add any additional logic here. can check if(waiting)
你是否将5个整数放入一个只有2个空间的数组中?只需使用if(Token>numbers.Max())控制台。WriteLine(“你必须等待”);
@Adam Liss更正了它。你是否将5个整数放入一个只有2个空间的数组中?只需使用if(Token>numbers.Max())控制台。WriteLine(“你必须等待”);
@Adam Liss更正了它。