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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

1966閲覧

[Java]キーボード入力で得た数値を使い、配列で計算を行いたい

Takoyakisan

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/07/25 08:36

編集2020/07/25 08:52

前提・実現したいこと

現在、Javaを勉強中の初心者です。
Javaでメソッドとオブジェクト指向を使った、ハンバーガーの種類と個数をユーザーにキーボード入力させ、その金額を計算するファイルを作っております。
同じpackageに2つのClassを作り、片方はDriver、もう片方はOrderという名前のClassです。

calculateBurger()メソッドでgetInputs()で入力した数字を使って計算したいのですがどのように修正したらよろしいでしょうか?

発生している問題・エラーメッセージ

burgerType cannot be resolved to a variable burgerCount cannot be resolved to a variable

該当のソースコード

public class Driver { public static void main(String[] args) { Order order1 = new Order(); order1.displayMenu(); order1.getInputs(); order1.calculateBurger(); order1.printBill(); } }

import java.util.Scanner; public class Order { //ハンバーガーの配列 String burger[] = {"ハンバーガー", "チーズバーガー", "ベーコンレタスバーガー", "オニオンバーガー", "てりやきバーガー"}; //ハンバーガーの値段の配列 int price[] = {100, 150, 150, 150, 150}; //ハンバーガーの値段*個数 double total; //消費税 double tax; //合計金額 double finalTotal; //メニュー public void displayMenu() { Scanner input = new Scanner(System.in); System.out.println("5つのハンバーガーです!:\n"); for(int i = 0; i < 5; i++) System.out.println((i+1) + ". " + burger[i] + "\t" + price[i] + "円"); System.out.println("6. Exit"); } //インプット public void getInputs() { Scanner input = new Scanner(System.in); System.out.print("\nどのバーガーがいいですか?(1-5の数字を入れてください): "); int burgerType = input.nextInt(); //0以下もしくは6以上の数字だった場合終了 if(burgerType <=0 ||burgerType >= 6) { System.out.println("1-5の数字を入れてください"); System.exit(0); } System.out.print("\n何個入りますか?: "); int burgerCount = input.nextInt(); } //計算 public void calculateBurger() { total = price[burgerType-1] * burgerCount; tax = total * 10.00 / 100; finalTotal = total + tax; } //アウトプット public void printBill() { System.out.println("値段 "+ total + " 消費税 " + tax + " 合計 " + finalTotal); } }

試したこと

calculateBurger()メソッドで配列を使って金額を出そうとしましたがエラーが起きました。
ローカル変数を仮に入れてもそこで入れた値でしか計算されませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Eclipseとかで書いてみて、黄線や赤線の理由を見たら解決できると思う。

イメージ説明

投稿2020/07/25 09:40

shark911

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

burgerTypeburgerCountがローカル変数のため、calculateBurger()では使えません。
クラス変数にしましょう。
エラー内容にエラーの発生箇所まで書かれているはずなので、calculateBurger()の当該箇所が指示されているかと思いますが。

投稿2020/07/25 09:18

Kaleidoscope

総合スコア257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Takoyakisan

2020/07/25 09:47

解決しました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問