c++循环和声明函数

C++ Looping and Declaring Functions

本文关键字:函数 声明 循环 c++      更新时间:2023-10-16

刚开始学习c++,我有一个问题,得到一个函数循环…我都不确定我做得对不对!如有任何帮助,我将不胜感激。

为了给出一些上下文,我试图构建一个简单的度到华氏度转换器,它需要用户输入度的值并输出华氏度的值。同样,就像在python中,你可以使用:time.sleep()来设置消息之间的延迟一样,你可以在c++中这样做吗?

这是我到目前为止所做的:

#include <iostream>
using namespace std;
//-------------------------------------------------
void DegreesToFarenheit()
{
     //Declaration
    float Degrees, Farenheit;
    //User Prompt
    cout << "Please Enter a Temperature in Degrees: " << endl;
    cin >> Degrees;
    cout << "" << endl;
    cout << "" << endl;
    //Program
    Farenheit = (((Degrees * 9)/5) + 32);
    cout << Degrees << " Degrees" << " is " << Farenheit << " Farenheit";
    cout << "" << endl;
}
char RepeatPrompt()
{
    char Ans;
    cout << "Would you like to enter a new value? ";
    cin >> Ans;
    cout << "" << endl;
    if(Ans = "y" or "Y")
        {DegreesToFarenheit();}
    else if(Ans = "n" or "N")
        {return 0;}
    else
        {main();}
}
int main()
{
    cout << "Degrees To Farenheit Converter V1.0" << endl;
    cout << "----------------------------------------" << endl;
    DegreesToFarenheit() ;
    RepeatPrompt() ;
    return 0;
}

c++中有3个循环。

,

,

您希望将主方法视为程序的起点,并将其视为第一个控制级别。从那里,您应该委托给管理程序运行时的方法。如果你想重用一段代码,你会想使用循环并再次调用它。您的代码示例类似于递归,但不是它的正确实现,也不是使用它的正确时机。递归可以是简化复杂迭代算法的强大工具,但并不适合所有类似循环的情况。这里放不下

在你的情况下,do while似乎是合适的。还请注意,开发人员在编码偏好方面有自己的风格,从技术上讲,任何循环都可以使用一些技巧。

EDIT我做了一点代码清理。当然,还有很多事情可以做。请注意,您的教师/在线教程可能会在方法开始时将变量声明分组在一起。这是c时代遗留下来的旧东西,没有必要,而且我觉得它很乱。保持变量接近它们的用法。当你觉得你声明了太多的变量时,考虑把你的函数拆分。

void DegreesToFarenheit()
{
  cout << "Please Enter a Temperature in Degrees: ";
  float degrees;
  cin >> degrees;
  float farenheit = (((degrees * 9)/5) + 32);
  cout << degrees << " Degrees is " << farenheit << " Farenheit";
  cout << endl;
}
bool RepeatPrompt()
{
  cout << "Would you like to enter a new value? ";
  char ans;
  cin >> ans;
  cout << endl;
  return ans == 'y' || ans == 'Y';
}
int main()
{
  do
  {
    DegreesToFarenheit();
  } while(RepeatPrompt());
  return 0;
}