C++ C++;循环直到输入特定字符
我正在使用的书中的一个实践练习(重述关于各种循环的章节)指导我创建一个程序,不断要求用户输入单个字符。有两种规格:C++ C++;循环直到输入特定字符,c++,loops,for-loop,syntax,C++,Loops,For Loop,Syntax,我正在使用的书中的一个实践练习(重述关于各种循环的章节)指导我创建一个程序,不断要求用户输入单个字符。有两种规格: 当输入“$”字符时,程序应终止 程序应记录输入的期间数,并在程序终止时输出总数。基本上,整个思路是循环输入提示->计数周期->显示此计数,然后在输入“$”时终止程序 以下是我的代码: // Takes character input, tallies periods, stops on dollar sign #include <iostream> using nam
// Takes character input, tallies periods, stops on dollar sign
#include <iostream>
using namespace std;
int main() {
char i; // input received
int j = 0; // counter for # of periods
cout << "This program will accept single-character entries and report the number of periods you've entered.\n";
for (;;) {
do {
cout << "Please enter a single character, using $ to stop: ";
cin >> i;
if(i == '.')
j++;
} while(i != '$');
if(i == '$')
cout << "Total number of periods entered is " << j << " .";
break;
}
return 0;
}
//接受字符输入,计算句点,按美元符号停止
#包括
使用名称空间std;
int main(){
char i;//接收到输入
int j=0;//用于#个周期的计数器
我不能;
如果(i='。)
j++;
}而(i!='$');;
如果(i='$')
cout无需在内环后检查外环或if
在阅读时,我还会检查错误或EOF,因此会编写如下代码:
int periods;
char ch;
std::cout << "Please enter a single character, using $ to stop: ";
for (periods = 0; std::cin >> ch && ch != '$'; )
{
if (ch == '.')
periods++;
std::cout << "Please enter a single character, using $ to stop: ";
}
std::cout << "Total number of periods entered is " << periods << " .";
void main()
{
Init();
while (1);
}
int周期;
char ch;
std::cout>ch&&ch!='$';)
{
如果(ch='。)
句号++;
std::cout无需在内环后检查外环或if
在阅读时,我还会检查错误或EOF,因此会编写如下代码:
int periods;
char ch;
std::cout << "Please enter a single character, using $ to stop: ";
for (periods = 0; std::cin >> ch && ch != '$'; )
{
if (ch == '.')
periods++;
std::cout << "Please enter a single character, using $ to stop: ";
}
std::cout << "Total number of periods entered is " << periods << " .";
void main()
{
Init();
while (1);
}
int周期;
char ch;
std::cout>ch&&ch!='$';)
{
如果(ch='。)
句号++;
std::cout对于(;;)
或其他类似的的用法,而(1)
我几乎只在书中或代码片段示例中见过。虽然我从未在成熟的程序中见过这种用法,但它可能不太常见。不过,通常至少有一个表达式(有时更多)虽然可以使用<代码> Stuts,但它不具有可读性。请考虑以下内容:
for (;;){
// do some stuff here
if (anexpression) break;
}
及
哪一种更具可读性?我更喜欢后者,但这仍然只是一种观点。还有许多其他方法可以编写循环(即:
用于(;)
或其他类似的用法while(1)
我几乎只在书籍或代码片段示例中看到过。虽然我从未在成熟的程序中看到过这一点,但可能不太常见。不过,通常至少有一个表达式(有时更多)虽然可以使用<代码> Stuts,但它不具有可读性。请考虑以下内容:
for (;;){
// do some stuff here
if (anexpression) break;
}
及
哪一种更具可读性?我更喜欢后者,但这仍然只是一种观点。还有许多其他方法可以编写循环(即:
永久回路在电子设备上更为常见。有时主回路甚至看起来像这样:
int periods;
char ch;
std::cout << "Please enter a single character, using $ to stop: ";
for (periods = 0; std::cin >> ch && ch != '$'; )
{
if (ch == '.')
periods++;
std::cout << "Please enter a single character, using $ to stop: ";
}
std::cout << "Total number of periods entered is " << periods << " .";
void main()
{
Init();
while (1);
}
在这种情况下,主函数等待中断处理
通常我们不使用永久循环,但这不是一个坏决定,只是不是解决问题的标准方法
假设代码看起来:
while (1)
{
...
if (condition)
break;
}
我们可以改为:
while (!condition)
{
...
}
在需要至少运行一次循环的情况下,我们可以使用do while循环。永久循环在电子设备上更常见。有时主循环甚至看起来像这样:
int periods;
char ch;
std::cout << "Please enter a single character, using $ to stop: ";
for (periods = 0; std::cin >> ch && ch != '$'; )
{
if (ch == '.')
periods++;
std::cout << "Please enter a single character, using $ to stop: ";
}
std::cout << "Total number of periods entered is " << periods << " .";
void main()
{
Init();
while (1);
}
在这种情况下,主函数等待中断处理
通常我们不使用永久循环,但这不是一个坏决定,只是不是解决问题的标准方法
假设代码看起来:
while (1)
{
...
if (condition)
break;
}
我们可以改为:
while (!condition)
{
...
}
在需要至少运行一次循环的情况下,我们可以使用do while循环。for(;)
循环在这种情况下是不相关的,至少有一个条件的循环,即for(;some condition;)
仍然有意义,但在这里没有。谢谢,我去掉了该循环,一切仍然正常工作。这本书使用了for(;;)循环以在本章前面演示相同的函数(循环直到特定的输入),这就是我的想法。我现在不在计算机上,所以我明天再看一看。是for(;;)我所拥有的循环,没有任何条件,在任何方面都是有用的,或者它与这里无关?在这个特殊的例子中,for循环没有做任何事情,因为在它循环之前中断就跳出了。但是一般来说,肯定有这样的“永远”的时候循环是必需的,可以是中断循环,也可以是返回循环。使用while(true){…}循环可能更常见。有几种方法可以创建无限循环,有些人更喜欢while(1)
或while(true)
。我个人更喜欢for(;)
。不,这并不少见。是什么让你认为你需要for循环?再看一遍你的代码,你有一个“while(!condition)”紧接着一个“if(condition)”。问问自己:如果条件不为真,你怎么会达到“if”呢?如果是这样,你为什么需要“for()”?一些C程序员使用for(;){if(…)break;work;if(…)break;more work;break;}
作为一种永远不会循环的流控制范例。实际上,它是一个goto,可能不应该在“C++”中使用。当您打算循环时,只使用“for(;)”。for(;)
循环在这种情况下是不相关的,循环至少有一个条件,即for(;some condition;)
仍然有意义,但在这里没有。谢谢,我将该循环取出,并且所有内容仍然正常工作。本书使用了for(;;)循环来演示相同的功能(循环直到特定输入)在本章前面,这就是我的想法。我现在不在计算机上,所以我明天再看一看。是(;)我所拥有的循环,没有任何条件,在任何方面都是有用的,或者它与这里无关?在这个特殊的例子中,for循环没有做任何事情,因为中断在它循环之前就跳出了。但是一般来说,肯定有一些时候需要这样一个“永远”的循环,在它里面要么有中断,要么有返回。