2017-04-19 10 views
-2

ユーザーは入力を入力できるようにプログラムを作成して、簡単な数学の科目で助けを得ることができます。私はそれを作ったと思ったので、そこにいない科目に入学した場合は、以下のelse文で見られるように(そうではないと)言うでしょう。なぜ私はそれを実行するとき、入力の件名が正しい場合、それはまだ別のステートメントを含む任意のアイデア? http://prntscr.com/ey3qyhC++はelse文を無視します

search = "triangle"; 

pos = sentence.find(search); 
if (pos != string::npos) 
    // source http://www.mathopenref.com/triangle.html 
    cout << "A closed figure consisting of three line segments linked end-to-end. A 3 - sided polygon." << endl; 

search = "square"; 
pos = sentence.find(search); 
if (pos != string::npos) 
    // source http://www.mathopenref.com/square.html 
    cout << "A 4-sided regular polygon with all sides equal and all internal angles 90°" << endl; 

else 
    cout << "Sorry, it seems I have no information on this topic." << endl; 

case 2: 
    break; 
default: 
    cout << "Invalid input" << endl; 
} 
+0

'search =" square ";'と 'case 2:'までのすべてを 'else'文に入れます。三角形が見つからない場合は四角形のみを探します。 –

+0

正方形や三角形以外のオプションがありますが、あまりにも多くのコードを入れたくありませんでした。三角形や四角形などのすべての検索のifの後にelse文を置いて記述しますか? –

+0

ifのすべてのコードがif文になるように変更することができれば(例えば 'search =" square "; pos = sentence.find(search); if(pos!= string :: npos)' into 'if(sentence.find(" square ")!= string :: npos)')、最初のif文の後のすべてのif文をelse if文に変更することができます。そうでなければ、それぞれがelseの中になければなりません。私は答えを書くだろう –

答えて

0

あなたは、少なくとも2つの選択肢があります。以前のものは機能しなかったとき、後続の各オプションはのみ評価されるように

巣オプション:

search = "triangle"; 
pos = sentence.find(search); 
if (pos != string::npos){ 
    // link to info about triangle 
    cout << "...info about triangle..." << endl; 
}else{ 
    search = "square"; 
    pos = sentence.find(search); 
    if (pos != string::npos){ 
     // link to info about square 
     cout << "...info about square..." << endl; 
    }else{ 
     search = "pentagon"; 
     pos = sentence.find(search); 
     if (pos != string::npos){ 
      // link to info about pentagon 
      cout << "...info about pentagon..." << endl; 
     }else{ 
      cout << "Sorry, it seems I have no information on this topic." << endl; 
     } 
    } 
} 

それとも、あなたはすべてに置くことができる場合if文にある場合の条件のためのコードステートメント場合は、他に使用することができます:あなたがあればの条件私のためにすべてのコードを合うことができれば、あなたが使用したもの

if (sentence.find("triangle") != string::npos){ 
    // link to info about triangle 
    cout << "...info about triangle..." << endl; 
}else if (sentence.find("square") != string::npos){ 
    // link to info about square 
    cout << "...info about square..." << endl; 
}else if (sentence.find("pentagon") != string::npos){ 
    // link to info about pentagon 
    cout << "...info about pentagon..." << endl; 
}else{ 
    cout << "Sorry, it seems I have no information on this topic." << endl; 
} 

が依存条件そのもの。

+0

ありがとう!私は最初の選択肢に行った。 :) –

2

はここにあなたのプログラムが何をするかだ: "三角形" が発見された場合

  • は "三角形"
  • を探し、三角形の定義を出力します。
  • 「正方形」のように見える
  • 「正方形」が見つかった場合は、正方形の定義を印刷します。それ以外の場合は、謝罪を行います。

「三角形」が見つかって「四角形」が見つからないため、三角形と謝罪の定義が印刷されます。言い換えれば、コンピュータはあなたが言ったことを正確に実行しています - 問題は何ですか?

+0

ああ、大丈夫。それはどういう意味かとは言えません。 どのようにして三角形と三角形のみを検索するように変更しますか?定義が格納されている場合はそれを返します。そうでなければ、ユーザーがサークルを再度検索できるようにします。 –

+0

@ j.doeそれを行うプログラムを書くことによって、プログラムをどのように正確に見せたいかはあなた次第です。 – immibis

関連する問題