顺序结构
- Java的基本结构就是顺序结构
选择结构
if单选择结构
if(布尔表达式){
//true则执行
}
Scanner scanner = new Scanner(System.in);
System.out.println("请输入内容:");
String s = scanner.nextLine();
//equals:判断字符串是否相等 与 == 有区别,别用 == 去判断字符串!
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
if双选择结构
if(布尔表达式){
//true
}else{
//false
}
if多选择结构
//满足一个条件进入一个if不会执行其他if语句
if(布尔1){
//1为true
}else if(布尔2){
//2为true
}else if(布尔3){
//3为true
}...
嵌套的if结构
if(布尔表达式1){
//true
if(布尔2){
//true
}
}
switch多选择结构
switch(expression){
case value :
//语句
break;//可选
//case穿透现象,若无break则会一直往下把所有语句执行
case value :
//语句
break;//可选
//可以有任意数量的case语句
default : //可选
//语句
}
switch语句中的变量类型可以是:
- byte、short、int、char、String
- case标签必须为字符串常量或字面量
为什么switch支持String类型
//用IDEA 反编译 java---class(字节码文件)看源码
//文件-项目结构-复制编译器输出路径-在我的电脑粘贴路径-找到目标class文件-将目标class文件复制到目的java包中-即可查看源码
String name = "狂神";
switch (name){
case "狂神":
System.out.println("狂神");
break;
}
源码:
//字符的本质还是数字
String name = "狂神";
byte var = -1;
switch(name.hashCode()){//通过hashCode()来判断
case 941788 :
if(name.equals("狂神")){
var = 1;
}
break;
}
switch(var){
case 1 :
System.out.println("狂神");
break;
}
循环结构
while循环
while(布尔表达式){
//循环内容
}
//避免死循环
do...while循环
do{
//代码语句
}while(布尔表达式);
//不满足条件也至少执行一次
for循环
for(初始化;布尔表达式;更新){
//代码语句
}
//最有效,最灵活的循环结构
//在IDEA里,要100次循环,之间100.for+Enter能快速帮你写好for循环表达式
//死循环
for( ; ;){
}
练习
//练习1:计算0-100奇数和偶数的和
int oddSum = 0;
int evenSum = 0;
for (int i = 0; i < 100; i++) {
if(i%2==0){
evenSum+=i;
}else {
oddSum+=i;
}
}
System.out.println("奇数和:" + oddSum);
System.out.println("偶数和:" + evenSum);
//练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 1; i < 1000; i++) {
if(i%5==0){
System.out.print(i + "\t");//转义字符\t
}
if(i%(5*3)==0){//当i能被三个5整除的时候,即第三个数被输出,需换行
System.out.println();//空串代表换行
//System.out.print("\n");
}
}
//println 输出完会换行
//print 输出完不会换行
主要用于数组的增强型for循环
for(声明语句 : 表达式){
//语句
}
int[] numbers = {10,20,30,40,50};//定义了一个数组
//遍历数组的元素
for(int x : numbers){//numbers每一个元素赋值给x(x在每一次循环中,在numbers里取值)
System.out.println(x);
}//与下面的意义相同
System.out.println("================");
for (int i = 0; i < 5; i++) {
System.out.println(numbers[i]);
}
break&&continue
- break用于强行退出循环,不执行循环剩余的语句
- continue跳过本次循环,执行下一次循环。用于终止某次循环过程
关于goto
java没有goto,”标签“是指后面跟一个冒号的标识符,列如:label:
对于Java来说唯一用到标签的地方是在循环语句之前。
//使用标签,返回到上级循环
//打印101-150之间的所有质数
//标签方法了解就行不建议使用
outer: for(int i = 101; i<150;i++){
for(int j = 2;j<i/2;j++){
if(i%j == 0){
continue outer;//当能被整除时,返回到上级循环
}
}
System.out.print(i+"\t");
}
标签:语句,控制,int,流程,System,循环,println,out
From: https://www.cnblogs.com/Mc9r4dy/p/18261064