我有一个逻辑问题。我将提供伪代码,因为真正的代码不是所有可读的。我只想输入其中一条指令,如果没有任何指令可以访问,我希望函数从循环中断开。
我对编程很陌生,所以感谢任何帮助。
编辑:在每次迭代中,我只希望达到其中一个条件。由于循环持续较长时间,我希望能够在每次迭代时达到相同/其他指令
while(true){
if(condition){ // Instruction 1
do stuff
}else{
do stuff
}
if(condition){ // Instruction 2
do stuff
}else{
do stuff
}
if(condition){ // Instruction 3
do stuff
}else{
do stuff
}
if(condition){ // Instruction 4
do stuff
}else{
do stuff
}
if(none condition){
break;
}
}
答案 0 :(得分:2)
我认为到目前为止,没有人能够获得这个位置,所以我会理解你的问题。
while(true) // keep looping
{
boolean instructionExecuted = false; // we haven't done an instruction this iteration
// Instruction 1
if(condition) {
instructionExecuted = true;
//do stuff
} else {
//do stuff
}
// Instruction 2
if(condition && !instructionExecuted) { // If we've not done an instruction,
// and we can do instruction #2
instructionExecuted = true;
//do stuff
} else if (!instructionExecuted) { // only do this if we haven't already
// done an instruction
//do stuff
}
// Instruction 3
if(condition && !instructionExecuted) { // If we've not done an instruction,
instructionExecuted = true; // and we can do instruction #3
//do stuff
} else if (!instructionExecuted) { // only do this if we haven't already
// done an instruction
//do stuff
}
//etc.
if(none condition)
{
break;
}
}
答案 1 :(得分:0)
添加bool触发器可能就是您要找的东西。如果输入任何if语句,则将触发器设置为true。
答案 2 :(得分:0)
boolean reachable = false;
while(true){
if(condition){ // Instruction 1
do stuff
reachable = true
}else{
do stuff
}
if(condition){ // Instruction 2
do stuff
reachable = true
}else{
do stuff
}
if(condition){ // Instruction 3
do stuff
reachable = true
}else{
do stuff
}
if(condition){ // Instruction 4
do stuff
reachable = true
}else{
do stuff
}
if(!reachable){
break;
}
}
答案 3 :(得分:0)
你正在努力实现这一目标。您需要做的就是在if语句之后添加多个else if语句。
示例:
if (condition) {
doStuff();
} else if (condition) {
doStuff();
} else if (condition) {
...
} else {
break;
}
答案 4 :(得分:0)
嗯,有多种方法可以实现您的目标:
doNotBreak
并在if / else阻止执行时设置为true表示循环不应该中断。if(condition1 && !condition2 && ..) break;
continue
而不是最后一个条件,而不是条件和内部if / else阻止你不想破坏的地方,使用class myClass():
def __init__(self):
self.__var1 = 'var1'
var2 = 'var2'
def myNormalMethod(self):
print self.__var1
@classmethod
def myClassMethod(cls):
print cls.__var2
#How do I do this?
def myMethod():
print self.__var1
print cls.__var2
。答案 5 :(得分:0)
或者,您可以检查是否可以使用switch语句而不是if-else。示例
public static void main(String argv[]) {
String [] conditions = {"condition_1","condition_2","condition_3","condition_4","xyz"};
printConditionType(conditions);
}
public static void printConditionType(String [] conditions){
int i = 0;
while (i<conditions.length){
switch (conditions[i]) {
case "condition_1":
System.out.println("#1");
break;
case "condition_2":
System.out.println("#2");
break;
case "condition_3":
System.out.println("#3");
break;
case "condition_4":
System.out.println("#4");
break;
default:
System.out.println("Invalid condition:" + conditions[i]);
}
i++;
}
}