Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;循环直到输入特定字符_C++_Loops_For Loop_Syntax - Fatal编程技术网

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循环没有做任何事情,因为中断在它循环之前就跳出了。但是一般来说,肯定有一些时候需要这样一个“永远”的循环,在它里面要么有中断,要么有返回。