【问题标题】:Noob C help - looping inside a switch/case?Noob C 帮助 - 在开关/机箱内循环?
【发布时间】:2017-01-22 18:31:49
【问题描述】:

刚接触编程,几周来我一直在努力完成这项任务。 我对 C 有非常基本的了解,虽然我快要完成了,但我想我可能在为这个菜单系统选择 switch case 时犯了一个错误。

所以主菜单提供了6个选项,这个选项必须检查以确保Z1大于Z2

case 5:

printf("\nEnter value Z1:\n");
scanf("%f", &Z1);
printf("\nEnter value Z2:\n");
scanf("%f", &Z2);

if (Z1 < Z2){
printf("\nZ2 must be less than Z1...\n");
}

我只想将程序返回到案例的开头,除非 Z1 大于 Z2。在阅读了另一个问题之后,除非值满足 if 语句,否则您似乎无法将 switch case 循环回来。作为 if 语句的一部分,我不知道该写什么。

任何建议都将不胜感激,我想我将不得不重写大部分内容。

抱歉,如果这真的很简单,我已经找了一个小时试图找到一些东西,也许我已经看到了答案,但只是不明白。

感谢您的宝贵时间!

【问题讨论】:

  • 您可以使用goto statments。另外,我建议您更改机制并在主函数中创建“无限”循环。通过这种方式,您可以在您定义的任何情况下中断或继续。
  • 此外,如果您可以提供更大部分的代码,其中包括所有 switch-case 语句;人们可能会提出更好的解决方案。

标签: c loops if-statement switch-statement case


【解决方案1】:

do {...} while (condition); 循环看起来非常适合;它非常接近while 循环,只是在括号中的代码执行后才检查条件;这意味着您的括号中的代码必须至少运行一次。 在这里,应该是:

do {
    //get z1 and z2
} while (Z1 < Z2);

【讨论】:

  • 不客气,每个 C 程序员在开始时都遇到过像您一样的简单问题......您现在可以验证答案以通知您的问题已得到回答,因此其他 SO 用户可以集中精力解决新问题。祝你学习顺利!
猜你喜欢
  • 1970-01-01
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-21
相关资源
最近更新 更多