#Java基礎
#今日学んだこと
1:変数の基礎
2:型変換と昇格
3:文字列連結
4:比較演算と論理演算
5:配列,for文
6:if,switch,三項演算子
#気づき
細かい気づきはありますが、得に初心者が勘違いしやすいと思うかなというところを挙げていこうと思います。
この画像を確認してください。
コードだけを見ると、(!flag)なんだからflagはfalseではないという意味だから、変数の初期化の部分でflag=falseとなっているから(!flag)の答えはfalseでしょと思う方がいると思います。
ですがそれは違うらしく、これは単なる真偽をひっくり返すという認識になるらしく
・flagを読む(値は false)
・単項演算子 ! を適用(false を反転 → true)
・println(true) が実行され、true が出力される
という形になるみたいなので、しっかり覚えておきたいところです。
このコードを見ていただきたいのですが、皆さんはこれがどのように出力されるか一目でわかりますか?

答えはこうなります
ではこちらはどうでしょうか?
答えはこうなります
なぜかというと、最初のfor文では、System.outprintln()がfor文の{}内に直接書かれているのに対し、2枚目はfor文の{}の外でSystem.out.println()が書かれていることにお気づきでしょうか。
最初のようにすると、for文で宣言している通り、i<=5に到達するまでnum2 += i;が繰り返されるのでこういった出力になります。一方、2枚目は外側にSystem.out.println()を書いているため、出力の最終結果だけが反映されるらしく、こういった出力になるみたいです。なので、途中経過も出力したいか、最終結果だけが欲しいかで使い分けましょう。
ややこしいですがしっかり覚えましょう!
#まとめ
Javaの基礎を復習を始めたのですが、この基礎ができてこそ、次のステップに行けると考えています。経験上ですが、基礎を理解していなかったら簡単なアプリを作るにしても途中で訳が分からなくなってしまいやる気がなくなってしまいます。笑
私もまだ基礎の基礎から学んでいます。しっかりと基礎を身に着け、応用していけるように頑張りましょう!



