文章目录
前言
在上一篇中,学习了基本运算符的使用以及小练习
SE运算符
运算符小练习
在本篇中会学习循环控制等一系列知识
一、顺序结构
顺序结构:就是按照代码书写的顺序一条条往下执行
public static void main(String[] args) {
System.out.println("aaa");//aaa
System.out.println("bbb");//bbb
}
输出aaa bbb 若调换顺序:
public static void main(String[] args){
System.out.println("bbb");
System.out.println("aaa");
}
则输出bbb aaa,这种则称为顺序结构
二、分支结构
分支结构:分支是根据判断条件的结果(真或假)而选择的向前路径的运行方式
1.单分支
public static void main(String[] args) {
int a=10;
if (a==10){ //判断条件(布尔表达式)
System.out.println("hello word"); //代码块
}
}
只有一个if语句,上述代码为单分支
2.双分支
public static void main(String[] args) {
int a=10;
if(a==10){
System.out.println(a);
System.out.println("hello word");
}else{
System.out.println("hello hello");
}
}
注:在if语句中不写大括号默认只会执行一条语句
3.多分支
public static void main(String[] args) {
int a=10;
if(a>10){
System.out.println(a);
System.out.println("hello word");
}else if(a==10){
System.out.println("hello hello");
}else{
System.out.println("hello");
}
4.悬垂else
注:悬垂else会使代码的可读性变差
public static void main(String[] args) {
int a=10;
int b=20;
if(a==10)
if(b==10)
System.out.println("aaa");
else
System.out.println("bbb");
}
最终结果输出“bbb”,这种称为悬垂else(不要省略括号来避免发生)
5.switch语句
public static void main(String[] args) {
int a=1;
switch(a)
{
case 1:
System.out.println("1");
break; //在switch中大部分语句都需要带break,如果失去那么会失去分支的特性
case 2:
System.out.println("2");
break;
default :
System.out.println("输入错误");
break;
}
}
switch中会有一条或多条case语句来选择,若都不满足则会执行default语句
switch语句中通常情况下case语句中要带break
不带break,则会继续执行到下一个break,才能跳出。
面试题:不能作为switch的参数的是??
在经过一些列测试后得出:
不能做参数的有
1.long类型
2.float类型 double类型
3.boolean类型
注:字符、字符串、枚举是可以作为参数的
三、循环结构
循环:重复的做一件事情
1.while循环
public static void main(String[] args) {
int i=0;
while(i<10){ //布尔表达式
System.out.println(i); //代码块(一行或多行)
i++;
}
}
2.for循环
public static void main(String[] args) {
for(int i=0;i<10;i++){ //布尔表达式
System.out.println(i); //代码块(一行或多行)
}
}
执行顺序:
表达式一 -》表达式二 -》语句块 -》表达式三 -》表达式二 -》语句块 -》表达式三 -》……
3.do while循环
do while循环先执行语句块,后执行判断条件
public static void main21(String[] args) { //do while
int i=5;
do {
System.out.println(i);
i--;
}while(i>=0);
//特点:至少执行一次。
}
4.break
break 跳转,跳出循环
public static void main(String[] args){ //break
int i=1;
while(i<=5){
System.out.println(i);
if(i==3){
break; //当i==3的时候,进入if,break跳出while循环
} //输出为;1 2 3
i++;
}
}
break作用会跳出整个循环,故结果看到三后的数字全部没有进行打印
5.continue
continue 跳出本次循环
public static void main8(String[] args){
int i=1;
while(i<=5){
if(i==3){ //当i==3的时候,进入if,continue跳出本次while循环
i++;
continue;
}
System.out.println(i); //输出为:1 2 4 5
i++;
}
}
continue的作用是跳出本次循环,故结果看到只有在3时未进行打印
四、输入输出
1.输出到控制台
public static void main(String[] args) {
int a=10;
System.out.println("hello word");
System.out.printf("%d",a); //格式化输出,同c语言
}
2.从键盘输入
方法一:System.in.read()从键盘输入(不常用)
public static void main23(String[] args) throws IOException {
System.out.println("Enter a char"); //一般不使用
char i=(char)System.in.read(); //win键+Alt键+回车,自动提示解决方案。
System.out.println(i);
}
方法二:
使用Scanner这个类来做输入
Scanner在import java.util.Scanner; 这个包内
public static void main24(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("年龄:");
int age=scanner.nextInt();
System.out.println(age);
System.out.println("价格:");
double agr=scanner.nextDouble();
System.out.println(agr);
System.out.println("姓名:"); //注:字符串放到最后会提前结束 bug 先输入字符后输入数字
String agq=scanner.nextLine();
System.out.println(agq);
}
注:在输入的时候有一定的bug,字符串不能放到最后,不然最后一次输入时不能进行输入
next和nextLine的区别:
nextLine和next可以同时打印字符串,
next:遇到空格结束
nextLine:打印一行