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

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

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

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

Q&A

解決済

1回答

1186閲覧

int num02 = (value01+1)% 10;について

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

1クリップ

投稿2020/08/30 11:41

編集2020/08/30 11:56

java

1private String Num(String inData){ 2 int value01= Integer.parseInt(inData.substring(i,i+1)); 3 int num02 = (value01+1)% 10; 4 5return n 6}

int num02 = (value01+1)% 10; この+1というのはだた受けた値に対して+1をしているのか、
受けたinDataがString型だから0からはじまっているから番号を合わせるために+1をしているのか、
上記両方違うのかわかりません。

もし、inDataが20200831の場合このメソッドだけ見ると
(20200831+1)%10でまちがいないでしょうか?

ほかもっと考慮する点はどこか教えていただきたいです。

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

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

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

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

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

swordone

2020/08/30 11:52

そもそもreturnしているnが何なのか不明です。 メソッドの目的が不明なので答えられません。
maisumakun

2020/08/30 11:53

以前の質問とも共通しますが、変数名が正しくなくて「突然何者かわからない変数が出現する」ようなコードを提示されても、誰も理解できません。
Zuishin

2020/08/30 12:21

20200831 は 2020 年 8 月 31 日のことですね。 ここから substring で 1 文字抜き出し、数値に変換しています。抜き出すのは文字列の先頭から i 番目(0 ベース)の文字です。それに 1 を加えて 10 の剰余を取ることにより、0 から 9 までの数値を 1 から 10 の数値にした上で 10 を 0 に変換しています。 そこまではこのコード内にありますが、その前後で何をしているかわからないため、結果として
退会済みユーザー

退会済みユーザー

2020/08/30 12:40

10 を 0 に変換しています。とのことですが、これは+1しなければ、0はなく1から9までになりますか?
kazuma-s

2020/08/30 16:04

> もし、inDataが20200831の場合このメソッドだけ見ると (20200831+1)%10でまちがいないでしょうか? String inData なので、inData が 20200831 という int ではあることは考えられません。 inData が "20200831" という String の場合、ということでしょうか? 定義した Numメソッドを呼び出す部分のコードも追加してください。 > ほかもっと考慮する点はどこか教えていただきたいです。 > int value01= Integer.parseInt(inData.substring(i,i+1)); 変数 i はどのように宣言されていて、ここでの値は何ですか? > return n メソッド Num が String を返すので、n は String でないといけないはずですが、 変数 n はどうように宣言されていて、ここでの値は何ですか? retrun n; のようにセミコロンを付けないとコンパイルエラーになるはずです。 正しい回答がほしければ、必要な情報を省略せずに全部書いてください。
Zuishin

2020/08/30 22:51

> +1しなければ、0はなく1から9までになりますか? もともとの 0 が加工さ
m.ts10806

2020/08/30 23:42

>ほかもっと考慮する点はどこか 質問するときにエラーで困ってないのでしたら、エラーの出ない、コード全てを提示してください。そもそもコンパイルできないコードを提示されても応えようがないのです。考慮と言うより配慮が足りません。
guest

回答1

0

ベストアンサー

int num02 = (value01+1)% 10; この+1というのはだた受けた値に対して+1をしているのか、

受けたinDataがString型だから0からはじまっているから番号を合わせるために+1をしているのか、
上記両方違うのかわかりません。

どちらでもありません。
value01というのは、そこ以外にどこにもないので、何の値か謎です。
もし定義もないとするのであれば、エラーになるかと思います。

もし、inDataが20200831の場合このメソッドだけ見ると

(20200831+1)%10でまちがいないでしょうか?

value01+1 ですので、inDataの値とは関係ありません。
少なくともこのメソッドを見た範囲では。


num01をvalue01に変更しました。

int value01= Integer.parseInt(inData.substring(i,i+1));
int num02 = (value01+1)% 10;

inData.substring(i,i+1) とありますが、iの定義も内容も不明です。

この場合(20200831+1)%10でまちがいないでしょうか?

substringは文字列の内から一部を切りだすメソッドですので、
inDataがそのままわたるという事はありません。

+1が何をしているのかStringが0からはじまるからなのかわからないです。

このコードからでは、+1が何をしているのかは不明ですが(そもそもこのコードの意味も不明)、
Stringは、文字列のオブジェクトですので、0から始まる(?)という事はありません。

ちなみに、value01+1で、int value01ですから、+1しているのは、intに対してであって、
Stringに対して行っているわけではありません。

int変数に対する+1は、その値に1を加算したものになりますが、
String変数に対する+1は、自動的にStringに変換されて、連結されますので、
"ABC"だとしたら、"ABC1"になります。
JAVAのString型は、C言語のchar型のように、直接文字の値が加算されることはありません。

投稿2020/08/30 11:52

編集2020/08/30 12:37
amiya

総合スコア1218

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

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

退会済みユーザー

退会済みユーザー

2020/08/30 11:59

num01をvalue01に変更しました。 この場合(20200831+1)%10でまちがいないでしょうか? +1が何をしているのかStringが0からはじまるからなのかわからないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問