2017-03-16 6 views
0

ループ内で特定の値を取得したときに、ある種の信号を別のメインループにブロードキャストし、必要な処理を開始するプログラムを作成しようとしています。私はお互いに相互作用する複数のループについてオンラインで検索しましたが、何も見つかりませんでした。 例:私はユーザーに番号を尋ねます。番号を受け取ったら、それは何の番号を確認し、適切なループとそこに計算に信号を送信します。終了すると、シグナルをメインループに戻し、ユーザがプログラムを終了するために特定の番号を入力するまで、プロセス全体を再度繰り返します。 C.にPS可能な場合は、簡単な方法でそれを説明することができ、私は新しい(っぽい)だループと他のループとのやりとり

編集:Cに開始することにより、コード

#include <stdio.h> 

main(){ 
    int ier, cand, product, check, i = 1; 

    printf("Input only whole numbers!"); 
    printf("\nMultiplier: "); 
    scanf("%d", &ier); 
    printf("\nMultiplicand: "); 
    scanf("%d", &cand); 

    while(i != 0){ 
    if((ier == 0 && cand > 0) || (ier > 0 && cand == 0)){ 
     printf("Product: 0") 
     printf("Input only whole numbers!"); 
     printf("\nMultiplier: "); 
     scanf("%d", &ier); 
     printf("\nMultiplicand: "); 
     scanf("%d", &cand); 
    } 
    if((ier > 0 && cand > 0) || (ier < 0 && cand > 0) || (ier > 0 && cand < 0)) 
    } 

    while(i != 0){ 
    if((ier < 0 && cand > 0) || (ier > 0 && cand < 0)){ 
     printf("Values must not be negative"); 
     printf("Input only whole numbers!"); 
     printf("\nMultiplier: "); 
     scanf("%d", &ier); 
     printf("\nMultiplicand: "); 
     scanf("%d", &cand); 
    } 
    if(ier > 0 && cand > 0){ 
     break; 
    } 
    } 
+0

何を試しましたか?あなたのコードを私たちに教えてください。 –

+0

これはあなたがそれを記述する方法とは独立したループではありません。あなたが計算を行う関数を呼び出すループを1つだけ持ちたいと思うように思えます。計算が終わるまでに多くの時間を取ることを望んでいない限り、そうしないといけません。その場合、複数のスレッドをサポートする言語を選択するか、オペレーティングシステムを使用してタスクを作成し、パイプやメッセージを使用する必要があります。あなたの質問にはそれ以上のものを絞り込むための具体的な文脈はありません。 – lurker

+0

if文でコードを書いて動作させましたが、複雑すぎます。私はまだそれを追加します。 –

答えて

0

、私はあなたがそれを維持していると仮定しますシングルスレッド(プログラムを実行するプロセスは1つだけです)。マルチスレッド化は別の話ですが、それは本当に複雑です。

この場合、cプログラムは相互に作用するループのグループではなく、順番に実行される命令の単​​一のバッチと考える必要があります。

「ループ」とは、設定された命令を完了すると、以前のいくつかの手順に戻り、同じ手順を繰り返します。 「If」の指示をスキップしてみましょう。

は、だからあなたの場合には、あなたが巣のようなもの、あなたがやりたいことにループすることができます

Start program 
finished = false 
Start loop while not finished 
    Ask user for a number x 
    If x < 0 Then finished = true 
    i = 0 
    Start loop while i < x 
     Print i 
     i = i + 1 
    End loop 
End loop 
End program 

がこれは「擬似コード」と呼ばれているあなたはより良いものにすることなく、行く方法を理解することができますので、それだけのコードです特定のコードの構文を理解する。 このプログラムは、ユーザーが負の数を入力してから、0からユーザーが入力した数値までのすべての数値を印刷するまで、ユーザーにループの数値を要求します。

関連する問題