#目的
- 今週から本配属だった
- 結局Javaを勉強することになった
- 記憶が新しいうちにJavaとPythonでちがったことまとめておこう
- ついでに少し勉強したことがあるJavaScriptも引っ張り出して比較しよう
この記事で比較する内容
- 変数
- if文
- while文
- for文
#変数
###Python
- データ型を宣言する必要はありません
- 変数の中身によって勝手に型を指定してくれます
- セミコロンもいりません
asobi.py
py_str = "Python"
py_int = 23
py_float = 23.5
# データ型確認
print(type(py_str))
print(type(py_int))
print(type(py_float))
コンソール
<class 'str'>
<class 'int'>
<class 'float'>
- 変数のデータ型を書きかえることもできます
asobi.py
py_str = "Python"
py_int = 23
print(type(py_str))
py_str = 10
print(type(py_str))
py_cal = py_str * py_int
print(py_cal)
コンソール
<class 'str'>
<class 'int'>
230
###Java
- データ型を宣言しなければなりません
- float型もありますが、主にdouble型を使うようです
- 直接的にデータ型を確認する方法は見つかりませんでした(instanceofというメソッドがあるようですが、intやdoubleには使えません)
- Javaのデータ型についてはこちらのサイトがわかりやすいです
- セミコロンを忘れずに
asobi.java
public class asobi {
public static void main(String[] args) {
String javaStr = "Java";
int javaInt = 23;
double javaFloat = 23.5;
}
}
###JavaScript
- データ型の宣言は必要ありませんが、変数名の前にvarをつける必要があります
- int型やfloat型ではなくどちらもnumber型になるんですね…
- セミコロンもいります
asobi.html
<html>
<script>
var jsStr = "JavaScript";
var jsInt = 23;
var jsFloat = 23.5;
// データ型確認
console.log(typeof(jsStr));
console.log(typeof(jsInt));
console.log(typeof(jsFloat));
</script>
</html>
コンソール
string
number
number
#if文
###Python
- if, elif, elseが使われます
- 条件の末尾に:を付けます
- 実行する文のインデントは必須です
asobi.py
age = 23
if age >= 65:
print("定年です")
elif age >= 20:
print("成人です")
else:
print("未成年です")
###Java
- if, else if, elseが使われます
- それぞれの条件を(), 実行する文を{}で囲います
asobi.java
public class asobi {
public static void main(String[] args) {
int age = 23;
if (age >= 65) {
System.out.println("定年です");
}else if (age >= 20) {
System.out.println("成人です");
}else{
System.out.println("未成年です");
}
}
}
###JavaScript
- if, else if, elseが使われます
- それぞれの条件を(), 実行する文を{}で囲います
- if文の形自体はJavaと同じですね
asobi.html
<html>
<script>
var age = 23;
if (age >= 65) {
console.log("定年です");
}else if (age >= 20){
console.log("成人です");
}else{
console.log("未成年です");
}
</script>
</html>
#while文
- それぞれの言語で以下のようにコンソール表示させてみましょう
コンソール
0です
1です
2です
3です
4です
###Python
- int型であるiと文字列をそのままつなげることができないので、iをstr型にします
asobi.py
i = 0
while i < 5:
print(str(i) + "です")
i += 1
###Java
- 例によって条件を()、実行文を{}で囲います
- インクリメントでi++という形を使うことができます
asobi.java
public class asobi {
public static void main(String[] args) {
int i = 0;
while (i < 5){
System.out.println(i + "です");
i++;
}
}
}
###JavaScript
- 例によってwhile文の形自体はJavaと同じです
asobi.html
<html>
<script>
var i = 0;
while (i < 5){
console.log(i + "です");
i++;
}
</script>
</html>
#for文
- それぞれの言語で以下のようにコンソール表示させてみましょう
コンソール
0です
1です
2です
3です
4です
###Python
- iが0から4までの5回の範囲で繰り返されます
asobi.py
for i in range(5):
print(str(i) + "です")
###Java
- for文の繰り返し条件が(初期値; 範囲; 増減)で表されます
- 初期値を格納する変数はデータ型を宣言する必要があります
asobi.java
public class asobi {
public static void main(String[] args) {
for (int i = 0; i < 5; i++){
System.out.println(i + "です");
}
}
}
###JavaScript
- 例によってfor文の形自体はJavaと同じです
- 初期値を格納する変数名の前にはvarを付ける必要があります
asobi.html
<html>
<script>
for (var i = 0; i < 5; i++){
console.log(i + "です");
}
</script>
</html>
#感想
- 複数言語を勉強するとき、比較しながら勉強すると覚えやすい
- JavaとJavaScript、インドとインドネシア並にちがうといいつつ、書き方結構似てるんだな
- やっぱりPythonがいちばん書きやすい!