流控制
流控制
1、用户交互Scanner
java.util.Scanner 用来获取用户的输入
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("使用nextline方式接收,请输入:");
if (s.hasNextLine()){
String str=s.nextLine();
System.out.println(str);
}
s.close();
}
}
区分next和nextline next:是以空格的方式结束,输到空格就断了,后面的就没了
nextline是以回车的方式接受,回车之后才会断了
public static void main(String[] args) {
//输入多个数字并且计算,非数字结束输入
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
m=m+1;
sum=sum+x;
}
System.out.println(m+"个数的和是"+sum);
System.out.println(m+"个数的平均值是"+sum/m);
}
s.equals("Hello") //判断字符串是否相等
2、Java的结构
1、顺序结构 (sequence),由若干个依次处理的顺序命令组合而成。
2、选择结构
if单结构
if (布尔表达式){
}
If 双选择结构、if多选择结构 多个else if
public class IfDemo2 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩");
if (scanner.hasNextDouble()){
double score=scanner.nextDouble();
if (score>60){
System.out.println("及格");
}else if (score>30){
System.out.println("不及格");
}else {
System.out.println("卷面都不及格,太差了");
}
}
scanner.close();
}
}
3、witch多选择结构
switch case 判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支。
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String gradeLine=scanner.nextLine();
char grade=gradeLine.charAt(0);
switch (grade){
case 'A':
System.out.println("优秀");
break;
case 'B':
System.out.println("及格");
break;
case 'C':
System.out.println("凑活");
default:
System.out.println("没有匹配");
}
注意,在最后,switch的每个case都要加上break,否则的话就会顺序的执行后面的语句。
switch现在也是可以支持字符串的。
反编译,我们编译好之后会得到一个class文件,可以通过class文件来看编译后的源码,直接将这个class文件复制到IDEA当前的目录下,点开就可以看。
点这个查找编译后的文件目录,之后把.class复制出来即可。
3、循环结构
while、do while、for循环
//输出1-100
int i=0;
while (i<100){
i++;
System.out.println(i);
}
对于while循环,如果不满足条件,根本不能进入循环,do while先执行后判断
do {
System.out.println(i);
i--;
}while (i>0);
For 循环
for (int i=1;i<100;i++){
System.out.println(i);
}
for (;;) //死循环
IDEA中,for循环是有快捷键的,100.for ok啦
在字符串相加的时候注意一定是"" 双引号,单引号的话是字符,相加会自动转换成数运算
增强for循环:主要用于数组或集合的增强型for循环
for (声明语句:表达式)
{
//代码句子
}
主要是用来循环数组和集合的
int [] numbers={10,20,30,40};
for (int x:numbers){
System.out.println(x);
}
for (int i = 0; i < 4; i++) {
System.out.println(numbers[i]);
}
break和continue
break在任何循环语句的主体部分,均可用 break控制循环的流程。 break用于强行退出循环,不执行循环中剩余的语句。( breaki语句也在 switchi语句中使用),break循环退出的只是一层循环。
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
goto,通过标签返回到固定的位置,java不支持goto
outer:for (int i = 101; i < 150; i++) {
for (int j=2;j<i/2;j++){
if (i%j==0){
continue outer;
}
}
System.out.println(i);
}
continue outer 就是直接跳转到outer,后面的命令就不执行了
debug的时候有个console,可以在里面和计算机进行交互