String - > Int
Integer.parseInt(str)
Integer.valueOf(str).intValue()
Int - >String
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
读取输入
初始化对象
Scanner sc = new Scanner(System.in);
之后通过.hasXxx()
方法获取不同类型输入
安全读取密码
仅通过控制台可以用
Console c = System.console();
String s = c.readLine("Your name:\n");
char[] p = c.readPassword("Password:\n");//为了安全
System.out.println("username:"+s+"\nPassword:"+p);
每次只能读取一行输入,不能读取一个单词或数值
流程控制
块作用域
由{}
及其包裹的部分,可以嵌套。
方法块中,子块不能重复声明父块的变量。
public class A {
String a;
public static void main(String[] args) {
String a; //Fine
}
}
public class A {
public static void main(String[] args) {
String a = null;
if(a == null){
String a ="ff"; //Error
}
}
}
条件语句
if-else if-else
if (条件) 语句
语句可以直接跟,也可以用块包裹多条语句
if (a)
a = false;
if (b) {
b = false;
i++;
}
分支
if (){
}
else if(){
}
else{
}
多个条件用else if()
,其它情况用else
(无条件)。找到符合条件则执行对应语句块,然后跳出条件语句。
switch
根据变量具体值来判断,传入类型可以为char,byte,short,int
,枚举常量,字符串。
switch传入括号内可以调用方法
int a = 0;
switch (a){
case 0:
System.out.println("");
break;
case 1:
case 2:
System.out.println("穿透");
break;
default: break;
}
循环语句
判断条件为true
时继续,false
结束循环。
for
for(A;B;C)
- A区只在第一次进入循环时,执行一次。通常对循环变量进行初始化
- B区在执行循环体前的条件判断
- C区表示如何跟新循环变量,在方法体执行后执行
Java
可以在A区声明循环变量同时初始化,C
则不能在该区域声明变量。
循环变量与其增量最好不要为浮点数,因为浮点数的精确度原因,会出现不可控情况。
for(float a = 0;a<6;a+=0.1){
System.out.println(a);
}
循环体可以访问到循环变量,即使是在A区声明的(A区声明的变量在之后代码中不可访问)临时变量。
若要在循环体外获得循环变量,循环变量的声明就要在循环外。
for(int a = 0;a<6;a++){
System.out.println(a);
}
System.out.println(a); // Error
int a;
for(a = 0;a<6;a++){
System.out.println(a);
}
System.out.println(a); // Fine
for
括号内条件可以提出,不写任何东西。此使和while
循环十分接近
int a = 0;
for(;;){
if (a<6){
System.out.println(a);
a++;
}
else{
break;
}
}
foreach
for(类型 循环变量:可循环结果集)
while
while (条件) 语句
- 先判断条件,再决定进入还是离开循环。
- 若进入则执行完后重复(1)
- 若离开则执行之后语句
do…while
do 语句 while(条件)
先执行语句,再判断是否进入循环
跳出循环
break
跳出多重循环
在循环前加tag:
,在想跳出处break tag;
int a = 0;
b:
while (a<10){
a++;
while (a < 9){
if (a%2 == 0){
break b;
}
a++;
}
}
System.out.println(a);
跳过当前
continue,结束当前循环体执行,不结束当前循环。