AIと戦って、あなたの人生のリスク診断 >>

javascriptには何故else ifが存在しないのですか?

詳しい方いましたら教えてください

A 回答 (3件)

> 厳密なelseif構文



当初の質問では、間にスペースが入ったelse ifだったからあるという答え方になりましたが、1つの予約語としてスペースがないelseifがないのはなぜって話なら、「elseとifを1行にまとめて書けるから独立した予約語が必要ない、と言語の設計者が判断したからじゃね?」ということになります。

そもそもjavascriptの母体になったjavaのそのまた原型である、C/C++でもelseifはありません。どっちかと言えば、elseif相当の予約語が独立して存在する言語ってメジャーどころではVBかPythonくらいで、ある方が少ない印象です。
    • good
    • 0

あなたのいう「厳密なelseif構文」とやらがなんなのかさっぱりわからんけど


不要だから
じゃないかな.
    • good
    • 0
    • good
    • 1
この回答へのお礼

それはelseの場合にif構文をネストさせているだけで、厳密なelseif構文ではないですね。

お礼日時:2019/02/27 23:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qスーパーハッカーやホワイトハッカーが未だにプログラムをキーボードを使ってアナログな入力を10年前と変

スーパーハッカーやホワイトハッカーが未だにプログラムをキーボードを使ってアナログな入力を10年前と変わらずに未だにガチガチキーパンチャーしてるのって一般人から見たら超絶ダサいらしいですよ。

マツコデラックスがスーパーハッカーがプログラムをキーボードで打っていたのを見て「まだキーボードで打ってるんだ。人工知能や音声を文字化出来るようになってるのに10年前と変わらずキーボードで打ってるの?!」と言っていましたが、本当にそうだなと思いました。

未だにキーボードでプログラミングしてるって古くさいというか自動化、自動化と言ってる割にプログラマーが1番アナログだったりして。

Aベストアンサー

それは普通の文章入力しか想像できない人の発想ですね。

プログラミング言語では記号を多用しますが、これをいちいちダブルコーテーションだのアットマークだの言うのは手間だし、実は記号じゃなくてダブルコーテーションは”じゃなくそのままダブルコーテーションっていう文字列にしたかったんだけど…みたいな区別に困ることもあります。その辺をきれいに解決する手段が今のところないってこと、また「キーボード入力の方が話すよりも速くてしかも正確に入力できる」と言う事実があること、またいちいち口に出すと言うことは意外に労力を要すること、といった事情から音声認識でどうにかしようという空気にならないのでしょう。

Qjavascript の配列操作に関して

先頭の要素を追加したり削除するのは、shiftやunshiftで対義語になっているので納得したのですが、末尾の操作に関して、popとpushなのは何故ですか?

それだったらpullとpushのが良かったのではないですか?
成り立ちについて詳しい方がいましたら、教えてください。こういうの気にするタイプなのです

Aベストアンサー

だいたいこの辺かなと

http://blog.codic.jp/2015/02/10/data-structure-and-naming/

pop/pushはスタックするときの用語
shift/unshiftはビット処理の用語
から流用したからだと

Qプログラミングに興味があります。 僕の勝手な考えですが、今配信されていないClipbox がインスト

プログラミングに興味があります。

僕の勝手な考えですが、今配信されていないClipbox
がインストールされている端末のClipboxの情報を
Clipboxがインストールされていない端末に移動(コピー)すればインストールされていなかった端末でもClipboxが使えるようになるのではないかと思っているのですが、
できないですかね。


(まだなんの知識もなく、プログラミングを勉強するつもりなので出来るようであればやってみたいなと思っています。)

Aベストアンサー

それとプログラミングにいったい何の関係があるのかって言うのは疑問ですが、アプリをコピーできれば使えるようになるってのはその通りです。そのためのアプリも実はすでにあったりします。

Q関数によって、MAX_PATHの値が異なる理由を教えてください。

MAX_PATHは260固定なのに、関数によって異なる理由を教えてください。

CreateFileは259文字まで、それ以上は関数が失敗します。
MakeSureDirectoryPathExistsは248文字まで、それ以上は関数が失敗します。
renameは220文字まで、それ以上は関数が失敗します。

Aベストアンサー

昔のファイルシステム(FAT)ではパス名の最長が255文字に制限されていました。
それに、ドライブレター等(C:¥)3文字とファイル名(8+3)の間のピリオド1文字で
255+3+1=259文字が最長パスです。
さらに、C言語で作成されたライブラリでは、
文字列の末尾にはNull文字(0x00)を付ける約束になっています。
それを含めて、MAX_PATH=260 となっています。
今どきのファイルシステム(NTFS)とはかなり違いますよね。
そんな訳で、時代とともに移り変わるシステムの中身が、
統一が取れているはずと思う方がおかしい。

Q改行をしたいが、<br>となって出来ない

https://codepen.io/LandonSchropp/pen/xLtif

こちらのscriptの
words = [ "the", "of", "and", …];
に日本語を入れて、なおかつ途中で改行をしたいと思っています。

例 words = [ "ああ\nあああ", "いいいい\nいいい", "うううう\nううう", …];

合間に\nを入れて、replaceで元のコード

$word.text(word);

$word.text(word.replace(/\n/g,"\<br /\>"));

と書いたのですが、ソースでは<br>が

&lt;br&gt;

↓ソース
<h1 style="background-color: hsl(288, 100%, 50%);"><svg xmlns="http://www.w3.org/2000/svg" role="img"><title class="title">Random</title><text class="word" dominant-baseline="central" fill="#222" stroke="#222" stroke-linecap="round" stroke-width="1.5%" text-anchor="middle" x="50%" y="50%">いいいい&lt;br /&gt;いいい</text><text class="word" dominant-baseline="central" fill="white" text-anchor="middle" x="50%" y="50%">いいいい&lt;br /&gt;いいい</text></svg></h1>

と表示され、ブラウザで見ると<br>と表示され、改行はされぬままです。

色々と自分で検索して調べてはいるのですが、知識不足で分かりません。
お分かりになる方、助けて頂けませんでしょうか

https://codepen.io/LandonSchropp/pen/xLtif

こちらのscriptの
words = [ "the", "of", "and", …];
に日本語を入れて、なおかつ途中で改行をしたいと思っています。

例 words = [ "ああ\nあああ", "いいいい\nいいい", "うううう\nううう", …];

合間に\nを入れて、replaceで元のコード

$word.text(word);

$word.text(word.replace(/\n/g,"\<br /\>"));

と書いたのですが、ソースでは<br>が

&lt;br&gt;

↓ソース
<h1 style="background-color: hsl(288, 100%, 50%);"><svg xmlns="...続きを読む

Aベストアンサー

No3です。

少し調べてみたら、もう少し要領の良い書き方ができそうなので・・・
(同じtextタグを2度書かなくても良くなります)
・defタグ内に雛形を定義しておくことで、これを2回参照します。
・改行はtspanで実現します。行送りはdy属性で変更可能
・文字サイズはfont-sizeで指定可能
・・・etcです

(位置の基準は左上基準にしてあります)

<svg width="500" height="500" viewbox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

<defs>
<text id="word1" font-size="40px" fill="white" x="0" y="0" >
<tspan x=0 dy="0">ああああああ</tspan>
<tspan x=0 dy="40">いいいいいいい</tspan>
<tspan x=0 dy="40">うううううう</tspan>
</text>
</defs>

<use x="100" y="100" href="#word1" stroke="#222" stroke-width="1.5%" />
<use x="100" y="100" href="#word1" stroke="white" />
</svg>

No3です。

少し調べてみたら、もう少し要領の良い書き方ができそうなので・・・
(同じtextタグを2度書かなくても良くなります)
・defタグ内に雛形を定義しておくことで、これを2回参照します。
・改行はtspanで実現します。行送りはdy属性で変更可能
・文字サイズはfont-sizeで指定可能
・・・etcです

(位置の基準は左上基準にしてあります)

<svg width="500" height="500" viewbox="0 0 500 500" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

<defs>
<text id="wor...続きを読む

Qプログラミングについてです。 はじめまして。お読みいただきありがとうございます。僕はプログラミングを

プログラミングについてです。

 はじめまして。お読みいただきありがとうございます。僕はプログラミングを勉強しているのですが、壁にぶつかってしまって困っています。
 元々IT関係のことが好きで、スマホやパソコンやガジェット、ブロックチェーンなどのことを調べていくうちにプログラミングをしてみようと思って今に至ります。
 本やサイトで学んでも文法ばかりでどうすればいいかわからなくなり、調べると、
「つくりたいものをまず見つけるといい。」
と書いてあったのですが、作りたいものといっても思い付いたものはすべてアプリストアにあったり(基本的にはLINEみたいないろんな人の役に立つアプリがつくりたいです。)、OSやAIなど今の自分には作れそうにないものばかり…
 そんなこんなで始めて数ヵ月になります。
 不便なことを探して改善といっても、特に不便なことはないと感じています。(具体的にどういうことかがわかりません。)
 プログラミングが楽しくないというわけではなく、バグが直ったり、自分なりのやり方でできたときは喜びを感じます。
 数ヵ月もしてなにもできないということは向いていないのかな?とも感じています。
 
 長くなりましたが、上記のようなところを考えておすすめの勉強法や、つくりたいものの見つけ方などを教えてほしいです。

プログラミングについてです。

 はじめまして。お読みいただきありがとうございます。僕はプログラミングを勉強しているのですが、壁にぶつかってしまって困っています。
 元々IT関係のことが好きで、スマホやパソコンやガジェット、ブロックチェーンなどのことを調べていくうちにプログラミングをしてみようと思って今に至ります。
 本やサイトで学んでも文法ばかりでどうすればいいかわからなくなり、調べると、
「つくりたいものをまず見つけるといい。」
と書いてあったのですが、作りたいものといっても...続きを読む

Aベストアンサー

>「つくりたいものをまず見つけるといい。」
 理屈ばかり勉強していてもこれは退屈で飽きてしまうのは目に見えている。
 世間に公開するほどでなくても、作って良かったと思えるモノを作れるとそれは楽しいし自分への励みにもなる。

>作りたいものといっても思い付いたものはすべてアプリストアにあったり
 この辺はプログラム初心者がみてしまうと絶望感を抱くというか、せっかく本人なりに苦労して開発してもすでに無償ソフト(フリーソフト)として公開されていたりすると、「このフリーソフトに勝てる気がしない」とか複雑な思いを抱きます。

 この辺の事情はさらに勉強に励んでひたすら改良を繰り返してよりよいモノに改善していくか、別のアプリ開発にも挑戦してみてジャンルの幅を広げてみるか。

 IT技術というとWEBを連想しますが、すでにWEB関連の技術者はかなりひしめき合っていると思うので、余裕があるなら今後のめぼしい技術としてIoT関連技術にも首を突っ込んでおくとヨイかもしれません。

 実践あるのみ・・・と思っているのでなにかマイコンで電子工作をしてみるとかですね。

>
KKHMF Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード モジュールArduinoと互換
https://www.amazon.co.jp/KKHMF-ATmega328P-CH340G-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABArduino%E3%81%A8%E4%BA%92%E6%8F%9B/dp/B073CHKMB2/ref=sr_1_10?ie=UTF8&qid=1551533368&sr=8-10&keywords=arduino+nano


>Raspberry Pi3 Model B ボード&ケースセット 3ple Decker対応 (Clear)-Physical Computing Lab
https://www.amazon.co.jp/Raspberry-%E3%83%9C%E3%83%BC%E3%83%89%EF%BC%86%E3%82%B1%E3%83%BC%E3%82%B9%E3%82%BB%E3%83%83%E3%83%88-Physical-Computing-Lab/dp/B01CSFZ4JG/ref=sr_1_10?ie=UTF8&qid=1551533423&sr=8-10&keywords=%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A4

 個人的には学習用マイコン ラズベリーパイがお薦めですが、必要開発機材を一式そろえようとすると1万円の費用が掛かるので無理なら格安で提供されているArduinoをいじってみるのもおもしろいと思います。

>「つくりたいものをまず見つけるといい。」
 理屈ばかり勉強していてもこれは退屈で飽きてしまうのは目に見えている。
 世間に公開するほどでなくても、作って良かったと思えるモノを作れるとそれは楽しいし自分への励みにもなる。

>作りたいものといっても思い付いたものはすべてアプリストアにあったり
 この辺はプログラム初心者がみてしまうと絶望感を抱くというか、せっかく本人なりに苦労して開発してもすでに無償ソフト(フリーソフト)として公開されていたりすると、「このフリーソフトに勝てる気...続きを読む

QC# ジェネリックについて

こんにちは。

ジェネリックについて教えてください。

インスタンスの作成部分において

player a = new player();
Player型の変数aのなかにPlayerクラスのインスタンスを代入という認識

player<int> a = new player<int>();
右辺:Playeクラスのインスタンスのなかに定義されている中身がInt型となる?
   (この場合ValueがINT型)
左辺:player<int> aの <int>って何ですか?
    変数aはPLAYER型ではなくInt型になるのでしょうか?

宜しくお願いいたします。
----------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ジェネリック
{
class Program
{
static void Main(string[] args)
{
player<int> a = new player<int>();
a.value = 2;
Console.WriteLine(a.value);
}
}
class player <t>
{
public t value;
}
}

こんにちは。

ジェネリックについて教えてください。

インスタンスの作成部分において

player a = new player();
Player型の変数aのなかにPlayerクラスのインスタンスを代入という認識

player<int> a = new player<int>();
右辺:Playeクラスのインスタンスのなかに定義されている中身がInt型となる?
   (この場合ValueがINT型)
左辺:player<int> aの <int>って何ですか?
    変数aはPLAYER型ではなくInt型になるのでしょうか?

宜しくお願いいたします。
-----------------...続きを読む

Aベストアンサー

>Playeクラスのインスタンスのなかに定義されている中身がInt型となる?
そうです

>player<int> aの <int>って何ですか?
>変数aはPLAYER型ではなくInt型になるのでしょうか?
playerの定義にある<t>という部分を明示的に型を指定しています
なので言葉で表すとするなら

Int型を指定されたplayerという名前のジェネリッククラスです

Qjavaが文字コードの影響でコンパイルが通りません。

java jdk-12 , windows10 , Tera Pad でコンパイルしようとしていますが、

 1つ目、

  エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

のエラーが出てコンパイルが通りません。 

ネットで調べて -encoding UTF-8 を追加してコンパイルしたら通ったのですが、次に

 2つ目、

  エラー: '\ufeff'は不正な文字です

というエラーが出ます。

UTF-8のBOMが原因のようですが、ネットで調べた方法をいくつか試してみても

コンパイルが通りません。

どのようにしたらよいでしょうか?


試した方法: UTF-8N にする , 一度Shift-Jisに変換してみる
$ nkf --overwrite --oc=UTF-8 ($は内部コマンドまたは...認識されませんと出ます)
ネット上のBOMをスキップする方法というソース

java jdk-12 , windows10 , Tera Pad でコンパイルしようとしていますが、

 1つ目、

  エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

のエラーが出てコンパイルが通りません。 

ネットで調べて -encoding UTF-8 を追加してコンパイルしたら通ったのですが、次に

 2つ目、

  エラー: '\ufeff'は不正な文字です

というエラーが出ます。

UTF-8のBOMが原因のようですが、ネットで調べた方法をいくつか試してみても

コンパイルが通りません。

ど...続きを読む

Aベストアンサー

>エラー: この文字(0xEF)は、エンコーディングwindows-31jにマップできません

日本語環境のWindowsで、普通に起動したコマンドプロンプトはShiftJISなんじゃないですかね?
https://qiita.com/user0/items/a9116acc7bd7b70ecfb0

TeraPadで保存時の文字コードをShiftJISにしたらどうなるでしょう?

とは言え…JavaならUTF-8とかでしょうかねぇ。
先程掲示したURLの方法でコードページをUTF-8にしてみてはどうでしょうか。

>$ nkf --overwrite --oc=UTF-8 ($は内部コマンドまたは...認識されませんと出ます)

Windowsには標準でnkfは入っていないと思いますけど、そこのところどうなんです?
vectorとかからDLして入れたんですか?
そして…コマンド入力時にプロンプトは入力しませんよ?
# Linuxとかのシェルのプロンプトだと思いますが…。

QC#について質問【複数の.datファイルからデータを取得後csvファイルでリストを作成】

いつもお世話になります。
複数の.datファイル(カンマ区切りの4~5列、約800行程度)
ProcessData,LOT_ID,3,AP0076686.00C,
ProcessData,LOT_ID_SUB,3,AP0076686.00,
ProcessData,LOT_NO,3,AP0076686,
ProcessData,WAFER_ID,3,AP0076686.19,
ProcessData,WAFER_NO,1,19,
ProcessData,PRODSPEC_ID,3,T5DH20001-00001.00,
ProcessData,PRODGRP_ID,3,T5DH2,
ProcessData,PRODGRP_BIND,3,T5DH2,
ProcessData,MAIN_MAINPD_ID,3,A6L511NY.00,
ProcessData,MAINPD_ID,3,A6L511NY.00,
ProcessData,FLOW_TYPE,3,Main,
ProcessData,FLOW_TYPE_NO,1,1,
ProcessData,D_SEQNO,1,169,
ProcessData,OP_NO,3,PNH PEP.MA1,
ProcessData,OP_NO_NAME,3,本処理,
ProcessData,PD_IDENT,3,PPNHIMA1.00,
ProcessData,PD_IDENT_NAME,3,PEP,
ProcessData,EQP_GROUP_CODE,3,PKRF,
ProcessData,EQP_GROUP_NAME,3,KrF SCANNER(SK3000 + ES5),
ProcessData,EQP_GROUP_BIND,3,PKRF,
ProcessData,EQP_ID,3,PKRF004,
ProcessData,PH_RECIPE_ID,3,PES5MIX,
ProcessData,RCP_NAME_SPACE,3,PEPMA,
ProcessData,LC_RECIPE_ID,3,PKRF.01,
ProcessData,RECIPE_ID,3,PEPMA.PES5MIX,
ProcessData,S_DATE,4,2019/01/24 12:47:09,
ProcessData,E_DATE,4,2019/01/24 12:47:51,
ProcessData,CAST_ID,3,PA0-00349,
ProcessData,SLOT_NO,1,19,

の中からSplitを用いて string[]dataTemp = fileData.Split(',');で
(ProcessData[0],EQP_ID[1],3[2],PKRF004[3],)のように配列に格納して
ifを使ってdataTemp[1] == "EQP_ID"の時にdataTemp[3](PKRF004)を
    dataTemp[1] == "LOT_ID"の時にdataTemp[3] (AP0076686.00C)を
    dataTemp[1] == "WAFER_ID"の時にdataTemp[3] (AP0076686.19)を
dataTemp[1] == "S_DATE"の時にdataTemp[3](2019/01/24 12:47:09)を
新たにCSVファイルを作成して上記のデータを入力したリストを作りたいのですが、C#初心者で
色々と試行錯誤しましたが知識が足りないようです。。。。


リストについてはヘッダーなどは必要ありません。.datが大量にあるので一列にEQP_ID、LOT_ID、WAFER_ID、S_DATEが並んだ状態で何100行とある状態リストを作成したいです。

詳しい方ご教授をお願いいたします。

いつもお世話になります。
複数の.datファイル(カンマ区切りの4~5列、約800行程度)
ProcessData,LOT_ID,3,AP0076686.00C,
ProcessData,LOT_ID_SUB,3,AP0076686.00,
ProcessData,LOT_NO,3,AP0076686,
ProcessData,WAFER_ID,3,AP0076686.19,
ProcessData,WAFER_NO,1,19,
ProcessData,PRODSPEC_ID,3,T5DH20001-00001.00,
ProcessData,PRODGRP_ID,3,T5DH2,
ProcessData,PRODGRP_BIND,3,T5DH2,
ProcessData,MAIN_MAINPD_ID,3,A6L511NY.00,
ProcessData,MAINPD_ID,3,A6L511NY.00,
ProcessData,FLOW_TYP...続きを読む

Aベストアンサー

質問内容が多岐に渡ってきているため、どこまで出来て、どこが出来ないのか、を整理して、
改めて質問を行うことをお勧めします。

今できないのは、元の質問内容ではなく、それぞれのロジックの書き方を理解していませんよね。
C#の文法。
対象ディレクトリ内のファイルの一覧を得るにはどうすればいいのか。
ファイルの読み込み、書き出しをするにはどうすればいいのか。
繰り返し処理するにはどうすればいいのか。
など。

最終目的を質問しても、誰も正解は教えてくれませんし、ネットには正解は転がっていません。
知識、情報を組み合わせて正解を作り上げるので。

そのため、実現するためのプロセスを細分化し、プロセス単位に方法論をネットで調べるとか、質問するとかになると思います。

QC#言語学んで

実際にプログラム打ち込んでも無反応です
何か打ち込んでもダメです
そしてエラーが起きます

Aベストアンサー

> そしてエラーが起きます

という事は、開発環境なんかはインストール、設定されてるって事ですね?

まずは、サンプルプログラムを打ち込む、というかコピペしてみては。

Microsoft .NET - Hello World -- 最初のプログラム (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/inside-a-program/hello-world-your-first-program

で、エラーが出るなら、エラーメッセージの内容を提示すると、問題解決の手掛かりになるかも。


人気Q&Aランキング