c语言中怎么样一次性跳出多重循环

c语言中怎么样一次性跳出多重循环,第1张

break只能跳出一重循环
有时候确实是这样,做完了一件事就可以全部结束了,然后跳出来,但break只能跳出一重如用goto有可能造成程序不稳定,事实上,绝大数人反对在C程序上用goto语句
我一般是这样,设置标记,就是比如说:flag=0;就循环,如果要跳出来了,就令flag=1;这样子就可以达到目的了
flag=1;
while (flag==1&&condition1)
{
while (condition2)
{
if(condition3)
{flag=0;break;}//这两句不反了!
}
}
如果是FOR词句,就改循环的计数

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5 ; j++)
    {
        goto _END;
    }
}
_END:
printf("exit for two loop");
// 用goto语句可以直接退出两重循环

跳出循环,可用转向语句来实现,包括三种,即goto语句、break语句和continue语句,以下是具体说明:

goto语句:

goto语句是无条件转向语句,一般格式为

goto 语句标号;

当执行到这个语句时,会转向到指定的语句标号处,执行标号后面的程序。结构化程序设计不主张使用goto语句,因为这会使程序变得无规律、可读性差。一般来说,goto语句会与if语句结合使用,或从循环体中跳出循环体;

break语句:

作用是跳出当前循环,执行循环后面的语句,一般格式为:

break;

continue语句:

作用是结束循环体中continue语句后面的语句直接进行下一回合的循环,一般格式为:

continue;

没事来做下这题
import javautilScanner;
public class Test1 {
public static void main(String[] args) {
// 密码输入次数
int count = 0;
//跳出两次循环,设置标志位
boolean flag=true;
Systemoutprint("请输入yhk密码:");
while (flag) {
Scanner scanner = new Scanner(Systemin);
String password = scannernextLine();
if ("111111"equals(password)) {
Systemoutprint("密码正确,请输入取款金额(取款金额要在0-2000之内,仅提供百元大钞):");
while (true) {
Scanner scanner1 = new Scanner(Systemin);
String moneyStr = scanner1nextLine();
int money=0;
try{
money = IntegerparseInt(moneyStr);
}catch (Exception e) {
Systemoutprintln("警告:你必须输入数字!");
}
if (money > 0 && money <= 2000 && money % 100 == 0) {
Systemoutprintln("您成功取款" + money + "元,感谢使用本系统!再见!");
//跳出两次循环
flag=false;
break;
} else {
Systemoutprint("您输入的金额有误,请重新输入(取款金额要在0-2000之内,仅提供百元大钞):");
}
}
} else {
if (count == 2) {
Systemoutprintln("密码输入错误三次,取款结束");
break;
}
Systemoutprint("密码错误,请重新输入:");
count++;
}
}
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13412312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存