X



初心者ですがC#でメソッドの返り値2つ目ってどうやって出力すれば…?
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:28:34.855ID:GtaNkqxld
Console.WriteLine(c(5,5));

int c(int a,int b)
{
return a = a + b;
return b = 11;

}

これだと10って出ます
11を返すにはどうすればいいでしょうか
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:29:30.784ID:9irk5wxXa
まず服を脱ぎます
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:29:34.201ID:Hy09XWBMa
配列にa,b入れてそれ返すとか
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:31:17.611ID:c2oxWinf0
これエラーにならんか?
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:31:33.331ID:c51YYT6k0
int cをもう一個作る
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:31:50.235ID:E5CSCqOq0
無理なんだなこれが
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:32:03.320ID:MZ6XMndY0
ポインタで返そう
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:34:34.222ID:GtaNkqxld
エラは出ませんでした
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:36:01.085ID:WDBw6/hpp
そりょreturnしてるんだからそうなるだろ
Cだとreturn a,bとかでいけないんだっけ?パソコン開いて確認するのがだるい
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:36:24.923ID:NWzmqZEz0
あまりにも理解できてなさすぎ
0011以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:37:14.677ID:UAUmhFWI0
てか、Cのルールって戻り値1つじゃね
2つ返したいなら片方グローバル変数で持って入れるとかポインタで入れるとかすれば
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:38:13.650ID:c/vqMfLy0
それか配列で返せばいいんじゃね
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:38:44.158ID:IGc8aWcga
11のほうは到達できないって警告は出るかもね
戻り値をリスト化するかクラス化するかoutするか
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:41:22.624ID:GtaNkqxld
>>10
昨日からはじめました。勘弁
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:42:12.977ID:vYg19vgx0
>>14
じゃあルールを覚えよう
ルールで出来ないってあるんだから出来ないもんはできない
みんなが挙げてる別のやり方するしかない
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:43:00.983ID:AU2oE7Uc0
まずお前が何を書いたのか日本語訳してみれや
「ひとつの整数値を返すcという関数を考えてください。それは整数aと整数bを受け取って計算するものです」から始まってるだろ?
ひとつだけ返すって言ってんだから一つしか返せないに決まってんじゃん
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:44:18.440ID:GtaNkqxld
>>9
ありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとうありがとううわぁああああああ
0018以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:44:38.553ID:GtaNkqxld
returnの理解不足でした
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:45:02.933ID:jPVrTCax0
Cの関数においてルールは、引数は好きな数だけ渡せる、戻り値は1つまで。
これがルール
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:46:07.319ID:efu1kF+od
なんか2つ以上変数同時に使うときはとりあえずコロンとか挟むといいと思ってるけどどうだろう
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:46:16.722ID:o3/8gtN6a
リターンしてるからだろ
必要なら配列で返せ
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:46:24.108ID:oFz543Q4M
Cに向いてない
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:48:42.672ID:VUOHqTand
タプルしろよ
0024以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:49:32.100ID:efu1kF+od
あ、return a =a+b;しちゃってるからreturn b;まで届かないのか

a=a+b;の前のreturnを消してはいかがでしょう
0025以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:49:46.139ID:E5CSCqOq0
基本的には1メソッドでは1つの目的の事をさせて
メソッドを組み合わせたメソッドでは最終的な答えをListやクラス型のインスタンスで出力する
例外的にref out in と言ったポインタやstatic変数を使う事も出来る
0026以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:50:29.475ID:GtaNkqxld
>>22
おけ!やめます!
0027以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:51:48.227ID:GtaNkqxld
>>19
分かりやすい。
ユーチューブの先生は動画でそんなこと言ってなかったから知らなかった

俺のイメージでは最初に書いたコードで

10,11

が表示されるもんだと思ってた
0028以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:52:37.532ID:ZziHfP00M
いい方法がある
ポインタで渡すんだ
0029以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 08:53:00.578ID:TP4CoOu20
識者「outとかref使え」
0030以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 09:01:59.845ID:GtaNkqxld
ポインタは全くわかりません。
また学んできます
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 09:13:15.115ID:TP4CoOu20
int a = 5, b = 5;
c(ref a, ref b);
Console.WriteLine("a={0},b={1}",a,b);

private static void c(ref int a, ref int b)
{
a = a + b;
b = 11;
}

ほとんど変えなくていいからそんなに難しくない
0032以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 09:20:59.838ID:TiHMUSVL0
ここまで全員ValueTuple知らない老害とかVIPも終わりだな

(int, int) c(int a,int b)
{
return (a + b, 11)
}


今はこれでできる
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 09:29:49.641ID:ZziHfP00M
ごめんな
おじいちゃん実はCしか知らなかったんだ
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/01/19(水) 09:51:44.933ID:DK+wNsRJd
すまん、日本語で喋ってくれや
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況