if
if(比较表达式) {
语句体;
}
- 先计算比较表达式的值,看其返回值是true还是false。
- 如果是true,就执行语句体;
- 如果是false,就不执行语句体;
public class IfDemo{
public static void main(String[] args){
int i = 5;
if(i == 5){
System.out.println("if中的条件是true")
i++;
}
System.out.println(i);
}
}
if…else…语句
if(比较表达式) {
语句体1;
}else{
语句体2
}
- 首先计算比较表达式的值,看其返回值是true还是false。
- 如果是true,就执行语句体1;
- 如果是false,就执行语句体2;
public class IfElseDemo{
public static void main(String[] args){
int i = 17;
if(i%2 == 0){
System.out.println(i+"是偶数");
}else{
System.out.println(i+"是奇数");
}
}
}
if…else if…else多条件
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
- 首先计算比较表达式1看其返回值是true还是false,
- 如果是true,就执行语句体1,if语句结束。
- 如果是false,接着计算比较表达式2看其返回值是true还是false,
- 如果是true,就执行语句体2,if语句结束。
- 如果是false,接着计算比较表达式3看其返回值是true还是false,…
- 如果都是false,就执行语句体n+1。
- 只要有一个if的条件是真,其他的代码就都不会执行了。
public class IfElesIfDemo{
public static void main(String[] args){
int grade = 75;
if(grade > 80){
System.out.println(grade+"成绩是优");
}else if(grade > 70){
System.out.println(grade+"成绩是良");
}else if(grade > 60){
System.out.println(grade+"成绩是中");
}else{
System.out.println(grade+"成绩是差");
}
}
}
if语句和三元运算符
- 判断条件多的话用if else,两个条的话件用三元
- 三元必须有结果,if else可以没有结果
public class IfElseDemo_1{
public static void main(String[] args){
int i = 5;
int j = 6;
if(i>j){
System.out.println(i+"是最大值");
}else{
System.out.println(j+"是最大值");
}
int k = i>j ? i : j;
System.out.println(k+"是最大值");
}
}
while循环
- 当条件是true,就执行循环体
- 执行完循环体后,程序再次执行while中的条件,如果条件还是true,继续执行循环体
- 直到条件是false的时候,循环就结束
public class WhileDemo{
public static void main(String[] args){
int i = 1;
while(i<5){
System.out.println(i);
i++;
}
}
}
for循环
for(初始化变量 ; 条件 ; 增量){
循环体;
}
- 变量定义,整个循环中终身定义一次。
- 条件是true的话,执行3。条件是false的话,执行5。
- 执行循环体。
- 执行增量,然后走2重新判断条件。
- 退出循环。
public class ForDemo{
public static void main(String[] args){
for(int i = 0; i < 11; i++){
System.out.println(i);
i++;
}
}
}
do…while
public class DoWhileDemo{
public static void main(String[] args){
int i = 0;
do{
System.out.println(i);
i++;
}while(i<5);
}
}
无限循环(死循环)
public class WhileForDemo{
public static void main(String[] args){
while(true){
}
for( ; ; ){
}
}
}
嵌套循环
public class ForForDemo{
public static void main(String[] args){
for(int i = 0; i < 2; i++){
for(int j = 0; j < 3: j++){
System.out.println(j);
}
System.out.println(i);
}
}
}
0120
0121
public class ForForDemo{
public static void main(String[] args){
for(int i = 0; i < 9; i++){
for(int j = 0; j < i: j++){
System.out.println(j);
}
System.out.println(i);
}
}
}
*
**
***
****
*****
******
*******
********
*********
break
- 结束整个循环,写在哪个循环就结束哪个循环
- 只能跳出最近的代码块,不能跨越多级代码块
- 可以把循环命名,然后 break 名,就可以结束指定循环
- 在loop/switch选择或者循环过程中,我们总是满足布尔表达条件才能执行对应的代码,然而在这些逻辑过程中,可以使用一些关键字直接跳出正在执行的代码,去执行后边或者指定位置的代码,这些关键字一旦出现就可以跳转语句执行顺序。
public class BreakDemo{
public static void main(String[] args){
int i = 1;
while(true){
if(i == 3){
break;
}else{
System.out.print(i);
}
i++;
}
}
}
1
2
- 为什么使用循环标号
- 当在双层循环或者循环内有switch选择语句时,我们发现,使用break或者continue所作用的对象均是内层语句,无法直接跳出外层循环,这时就需要使用标号语句跳转了.
- 在外层循环外的某行前边,使用后边跟有冒号”:”的标识符,即定义完毕。使用时当在内层循环使用break或continue时后边紧跟之前定义的标号即可。
- 当外层循环外定义了标号
- 内层使用break,终止内外双层循环。
- 内层使用continue,终止内层循环,继续外层循环。
continue
- continue下面的语句都不执行了,终止本次循环,开始下一次循环
public class ContinueDemo{
public static void main(String[] args){
for(int i = 0; i < 10; i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
}
}
1
3
5
7
9
实例:猜数字游戏
import java.util.Random;
import java.util.Scanner;
public class GuessNumber{
public static void main(String[] args){
Random ran = new Random();
int ranNumber = ran.nextInt(100)+1;
Scanner sc = new Scanner(System.in);
for(int i=1; i<=5; i++){
System.out.println();
System.out.println("请输入1-100的数字:");
int guessNumber = sc.nextInt();
if(guessNumber>ranNumber){
System.out.println("猜大了");
}else if(guessNumber<ranNumber){
System.out.println("猜小了");
}else{
System.out.println("猜对了");
break;
}
if(i==5){
System.out.println("次数耗尽");
break;
}
System.out.println("您还有"+(5-i)+"次机会");
}
}
}