c++循环和声明函数
C++ Looping and Declaring Functions
刚开始学习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;
}
相关文章:
- Visual Studio中的函数声明和函数定义问题
- 为什么函数声明中允许 const?
- 如果 x.h 仅由函数声明组成,为什么有必要在 x 中包含 x.h.cpp
- * 和 ** 在 C++ 函数声明中是什么意思?
- 构造函数/函数声明参数列表中的统一初始化
- 在将函数声明为友元时,尖括号的含义是什么?
- 为什么转换函数声明不需要至少一个定义类型说明符
- 如何正确编写指针函数声明?
- 在"template"和函数声明之间使用:template<typename trait> using tr = base_trait<trait> void fn(tr::t
- 为什么要将函数声明和定义放在单独的文件中
- 为什么系统日志有两个不同的函数声明?
- 我如何获取数组的大小,以便我可以从函数声明所述数组
- 使用 enable_if 在按值传递与按引用传递之间更改函数声明
- JavaScript 中的一等函数和 C++ 中的函数声明
- C++ 通过函数声明后初始化向量
- VS2017 #error: : snprintf 的宏定义与标准库函数声明冲突
- C++ 17 个友元函数声明和内联命名空间
- MSVC 2017 - 错误 - 如何将模板类 X 的模板成员函数声明为嵌套类 X::Y 的好友
- 将派生类的构造函数声明为父类的友元
- 用于从 ANSI 字符串转换为 std::basic_string <TCHAR>的正确函数声明