循环与其他循环的交互
Loop interaction with other loop
我正在尝试创建一个程序,当它在循环中获得某个值时,它会向另一个主循环广播某种信号,然后它会开始做任何它需要做的事情。我在网上搜索了多个循环相互作用的信息,但一无所获。
例如:我向用户要一个号码。当我收到号码时,它会检查它得到的号码并将信号发送到适当的循环并在那里进行计算。完成后,它将信号发送回主循环并再次重复整个过程,直到用户输入特定数字以终止程序。 P.S 如果可能的话,你能用简单的方式解释一下吗,我是 C 的新手。
编辑:代码
#include <stdio.h>
main(){
int ier, cand, product, check, i = 1;
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
while(i != 0){
if((ier == 0 && cand > 0) || (ier > 0 && cand == 0)){
printf("Product: 0")
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
}
if((ier > 0 && cand > 0) || (ier < 0 && cand > 0) || (ier > 0 && cand < 0))
}
while(i != 0){
if((ier < 0 && cand > 0) || (ier > 0 && cand < 0)){
printf("Values must not be negative");
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
}
if(ier > 0 && cand > 0){
break;
}
}
从 c 开始,我假设您保持单线程(只有一个进程执行您的程序)。多线程是另一回事,它真的很复杂。
在这种情况下,您必须将 C 程序视为不是一组相互交互的循环,而是一批按顺序执行的指令,一条接一条。
一个"Loop"就是当你完成一个set指令时,你跳回到之前的一些指令并重复相同的指令。与 "If" 让您跳过一些指令时相同。
所以在你的情况下你可以嵌套循环来做你想做的事情,比如:
Start program
finished = false
Start loop while not finished
Ask user for a number x
If x < 0 Then finished = true
i = 0
Start loop while i < x
Print i
i = i + 1
End loop
End loop
End program
这叫做 "pseudocode",它只是一个代码,因此您无需了解特定的代码语法就可以更好地理解事情的进展。
该程序会循环询问用户一个数字,直到用户输入一个负数,然后打印出从 0 到用户输入的所有数字。
我正在尝试创建一个程序,当它在循环中获得某个值时,它会向另一个主循环广播某种信号,然后它会开始做任何它需要做的事情。我在网上搜索了多个循环相互作用的信息,但一无所获。 例如:我向用户要一个号码。当我收到号码时,它会检查它得到的号码并将信号发送到适当的循环并在那里进行计算。完成后,它将信号发送回主循环并再次重复整个过程,直到用户输入特定数字以终止程序。 P.S 如果可能的话,你能用简单的方式解释一下吗,我是 C 的新手。
编辑:代码
#include <stdio.h>
main(){
int ier, cand, product, check, i = 1;
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
while(i != 0){
if((ier == 0 && cand > 0) || (ier > 0 && cand == 0)){
printf("Product: 0")
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
}
if((ier > 0 && cand > 0) || (ier < 0 && cand > 0) || (ier > 0 && cand < 0))
}
while(i != 0){
if((ier < 0 && cand > 0) || (ier > 0 && cand < 0)){
printf("Values must not be negative");
printf("Input only whole numbers!");
printf("\nMultiplier: ");
scanf("%d", &ier);
printf("\nMultiplicand: ");
scanf("%d", &cand);
}
if(ier > 0 && cand > 0){
break;
}
}
从 c 开始,我假设您保持单线程(只有一个进程执行您的程序)。多线程是另一回事,它真的很复杂。
在这种情况下,您必须将 C 程序视为不是一组相互交互的循环,而是一批按顺序执行的指令,一条接一条。
一个"Loop"就是当你完成一个set指令时,你跳回到之前的一些指令并重复相同的指令。与 "If" 让您跳过一些指令时相同。
所以在你的情况下你可以嵌套循环来做你想做的事情,比如:
Start program
finished = false
Start loop while not finished
Ask user for a number x
If x < 0 Then finished = true
i = 0
Start loop while i < x
Print i
i = i + 1
End loop
End loop
End program
这叫做 "pseudocode",它只是一个代码,因此您无需了解特定的代码语法就可以更好地理解事情的进展。 该程序会循环询问用户一个数字,直到用户输入一个负数,然后打印出从 0 到用户输入的所有数字。