質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.99%

三角形の辺の値を3つ入力し、三角形が成立するかしないかを確認できるようにしたい

受付中

回答 6

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,524

MasakiSakamoto

score 11

以下のプログラムでユーザーが0または負の数を入力した場合に"Error:入力する数値xは1≦xでなければならない"と表示されるようにし、その辺の値を再入力するようにしたいのですがどこにそのプログラムを入れれば良いでしょうか?

import java.util.Scanner;
public class Assignment 
{
    public static void main(String[] args) 
    {
        System.out.println("Welcome to my first assignment!");
        Scanner input = new Scanner (System.in);
        int SideA;
        int SideB;
        int SideC;
        int result = 1;

        while (result == 1)
        {
            do
            {
                System.out.println("Enter side A");
                SideA = input.nextInt();
                System.out.println("Enter side B");
                SideB = input.nextInt();
                System.out.println("Enter side C");
                SideC = input.nextInt();

        if (SideA <1 || SideB <1 || SideC <1)
            {    
                System.out.println("Error: numbers must be greater than or equal to 1");
                System.out.println("Enter 1 to continue, or 0 to exit!");
                result = input.nextInt();
                break;
            }
        else if (SideA+SideB < SideC || SideA+SideC < SideB || SideB+SideC < SideA)
            {
                System.out.println("These numbers do not make a triangle");
                System.out.println("Enter 1 to continue, or 0 to exit!");
                result = input.nextInt();
                break;
            }
        else
            {
                System.out.println("These numbers make a triangle");
                System.out.println("Enter 1 to continue, or 0 to exit!");
                result = input.nextInt();
                break;
            }

            }while (SideA <1 || SideB <1 || SideC <1 || SideA+SideB < SideC || SideA+SideC < SideB || SideB+SideC < SideA);
        }
    } 
}
  1.    When the user enters a number for the side of a triangle, if the number is less than 1, the program must say "Error: numbers must be greater than or equal to 1" and then the program asks the user to enter the number for that side again
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • MasakiSakamoto

    2016/10/05 16:28

    英文は読めます。さすがに2年も現地にいるのでこの程度は簡単に解釈できます。

    キャンセル

  • swordone

    2016/10/05 17:09

    結局のところ、何が分からないんですか?

    キャンセル

  • 退会済みユーザー

    2016/10/07 12:01

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 6

+3

三角関数関係ないですねこれ。高校1年数学の知識です。
「三角形 成立条件」で調べればいいのでは?

編集を受けて

超めんどくさいことしてますねこれ。そもそも辺の名前をABCと分ける必要ありますか?
配列にしてインデックスでループすればかなりシンプルにコードをまとめられます。
その際、インデックスごとに入力時点で値をチェックし、条件を満たすまでwhileループすれば目的を果たせます。

そして、三角形の成立条件でもっとシンプルに判定できるものがありませんでしたか?
ある前提条件を満たせば、判定は1度で済みます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

書き始めのところ以外全くわかりません

丸投げなので、コードは書きませんが、考え方だけ言いますね。
プログラミングの基本として、命令の単位まで問題を分解していきます。

三角形の3辺の値を入力して三角形になるか否か(Error)を表示させる

「三角形の3辺の値を入力」「三角形になるか否か」「表示させる」

これをさらに分解して、「Java」と「入力」「表示」などで調べて、
数独みたいなパズルの要領で、埋められるところを埋めていってください。
(もちろん、規模が大きいプログラムは、もっとちゃんと設計しますが)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

学校の課題ですよね。
課題は自分でやりましょう。

また、一番参考になるのは授業のテキストだと思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

3辺が与えられた時に、三角形になるかどうかを答えるだけだと思います。
1.コンソールからの数値の読み込み。(3回)
2.入力された数値を3辺の長さとして、3角形が組み立てられるかどうかの判断。
3.3角形になれば"These numbers make a triangle" 、ならなければ"These numbers do not make a triangle" と表示する。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/10/05 23:01

    蛇足ですが、最も長い辺よりも、他の2辺の加算結果が長いとき3角形になります。・・・同じ長さの時はどうゆう扱いでしょうか?・・・直線? 委縮した3角形?

    キャンセル

  • 2016/10/05 23:07

    いずれにせよ三角形になりませんよね

    キャンセル

  • 2016/10/06 05:28

    僕の質問の仕方が悪いとうのが大前提にあると思うので、わからないことが明確になり次第再度質問に修正を加えようと思います。

    キャンセル

0

エラー時にやり直したい箇所をDoWhileで囲めばいいだけかと思います。
仕様すら書いていないので思い通りの動きをするかどうかはわかりませんが。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-4

これでバッチリです!

System.out.println("三角関数に関するプログラム");

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.99%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る