はじめに
エンジニア未経験(34歳)の僕が、エンジニアとして転職。
その転職先でjavaシルバーの資格をとりましょう。と言われたので、その学習メモです。
(もともとjavaは学びたい言語だったのでめちゃくちゃ丁度良い)
なので、記事の内容は本当に基本のキです。
と、同時に誤りがあれば遠慮なくツッコミいただけると幸いです・・・・m(_ _)m
条件分岐って言ったらアレのことでしょ?
今まで(の僕)
僕「プログラミングをする上で、条件によって処理を分岐させたい時にどうすればいいんだろう・・・?」
もう一人の僕「決まってるぜ相棒。ここはif文
かswitch文
だぜ!」
if文の場合
もう一人の僕「リバースカード発動!『条件分岐 if文』!このカードは条件式で処理した結果がtrueかfalseとして判定される!trueの場合は条件式直後の{}の中の処理。falseの場合はelse直後の{}の中が実行される!」
if(条件式){
trueの処理;
}else{
falseの処理;
}
もう一人の僕「ただし、if文は条件式のあとの{}を省略することもできる!その場合、条件式の結果がtrueだった時、そのあとに続く1行がtrueの処理として判断されるっ!!」
if(条件式)
trueの処理;
trueだろうがfalseだろうが走る処理;
switch文
もう一人の僕「リバースカード発動!『条件分岐 switch文』!このカードh(略」
switch(式){
case 定数:
ケースに該当した処理;
break;
case 定数:
ケースに該当した処理;
break;
}
条件演算子というものもある(ここが本題)
そんなこんなでドヤってたんですけど、条件演算子というものもあるみたいですね。
条件演算子は三つの項目から成るので、三項演算子というのに分類されるそうな。
構文
条件式 ? 式1 : 式2 ;
なんだか見慣れませんね・・・(動揺)
条件式の結果がtrueだった場合は、式1を実行。条件式の結果がfalseだった場合は、式2を実行するみたいです。
実際に使ってみる
早速使ってみました。
プログラムの内容としてはこんな感じ。
- コマンドラインでjavaを実行する時に引数で文字列を渡してあげる。
- それが"test"という文字列と一致しているかどうかを確認する(今回の本題、条件演算子:ソースコード6行目)
一致していれば、str(インプットされた値と"test"は)
という変数に"一致してますよ"
の文字列を結合
一致していなければ、str(インプットされた値と"test"は)
という変数に"一致してませんよ"
の文字列を結合 - 7行目で結合したstrをコンソールに出力
public class Sample{
public static void main(String[] args){
String inputString = args[0];
System.out.println("inputStringは" + inputString);
String str = "インプットされた値と\"test\"は";
str += inputString.equals("test") ? "一致してますよ" : "一致してませんよ";
System.out.println(str);
}
}
/*
→ コマンドラインで test を渡して実行すると「インプットされた値と"test"は一致してますよ」と表示される
*/
使い所としては、簡単な条件式に限定されますかね?
「if文を使って何行にもかけて記述するほどのものですかね?この条件。」ってレベルのものはこれで書いてあげるとソースコードが短くなってスッキリしますよね
さいごに
本当に、初歩の初歩だと思いますが、意外と初心者にとっては見慣れなかったり、そもそも引き出しが無かったりするので、まとめてみました。
何か誤りなどあれば、この記事を目にした人のためにも、僕の成長と自信のためにもご指摘いただけますと幸いです。