流程控制
用户交互
java通过Scanner类来获取用户输入
基本语法
Scanner in = new Scanner(System.in);
之后通过Scanner的next()和nextLine()获取输入字符串,读取前一般用hasNext()和hasNextLine()判断是否还有输入数据
Scanner in = new Scanner(System.in);
if(in.hasNext()){
String str = in.next();
System.out.println(str);
}
// in: abcd ef
// out:abcd
/*
如果是nextLine和hasNextLine
out:abcd ef
*/
//前者以非空白开始,以空白为结束符;后者以enter为结束符
in.close();
//关闭scanner,节省资源
Scaner的其他方法:整数
if (in.hasNextInt()){
int a = in.nextInt();
System.out.println(a);
}else{
System.out.println("输入不是整数");
}
小数:
if (in.hasNextDouble()){
Double a = in.nextDouble();
System.out.println(a);
}else{
System.out.println("输入不是小数");
}
//Float 同理
ctrl + 左键 :进入源代码
顺序结构
java的基本结构,字面意思,一句一句的向下执行
选择结构
if单选择
String s = "hi"
if(s.equals("hello")){
}
// equals是字符串的方法,判断字符串是否相等
if双选择
if(){
}
else{
}
if多选择
if(a>5){
System.out.println(a>5);
}
else if(a>4){
System.out.println(5>a>4);
}
else if(a>3){
System.out.println(4>a>3);
}
else{
}
嵌套if
if(){
if(){
}
}
swich-case
switch (a){
case 1:
System.out.println("1");
break;
case 4:
System.out.println("4");
case 6:
System.out.println("6");
break;
default:
System.out.println("其他");
}
// in:4
// out:4
// 6
// case 后面可以是数字或者字符串
idea反编译
正常情况:java 经过编译变成 class 文件,class文件无法正常阅读(像乱码),将class文件从文件夹层面直接拖到java类的文件夹里就可以正常阅读了
循环结构
while 循环
while(){
}
do while 循环
do{
}while()
do while 循环至少会执行一次,先执行后判断
for 循环
for(初始化;布尔表达式;更新){
}
//idea 快捷键100.for
增强for循环
int[] number = {10,20,30,40}
for (int x : number)
{
}
break & continue
循环中的:
break :强制退出循环
continue:终止某一次循环
关于goto:尽管其是一个保留关键字,但从未在java中正式使用。goto的功能被break和continue替代了
outer:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (i % j == 0) {
continue outer;
//跳转到外层的下一次for循环
}
}
}
//outer为标签,可以为不同命名name
练习
利用循环写一个三角形:
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
//三角形的左半
for (int j = 1; j<=i ; j++){
System.out.print("*");
}
//三角形的右半
for (int j = 1; j<i;j++){
System.out.print("*");
}
System.out.println();
}
最后效果: