程序逻辑控制

一、程序逻辑控制语句

1、顺序结构
按照语句的书写顺序来执行

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//打印按照顺序执行,先输出aaa,再输出bbb,最后输出ccc

2、分支结构
(1)if / else语句

  • if中的条件必须是布尔类型的,建议最好带上{},如果不带,else总是和离他最近的的那个if构成if/else语句
  • if条件后面如果带了分号,条件为真则执行空语句,不执行{}里的语句
  • if支持嵌套,可以有if/else if/else…
  • 如果为if/else语句,则只有两种情况
//判断一个数字是奇数还是偶数(if/else)
int num = 10;
if(num%2==0){
    System.out.println("num是偶数");
}else{
    System.out.println("num是偶数");
}

//判断一个数是正数还是负数(if/else if/else)
int x = 10;
if(x<10){
    System.out.println("x是负数");
}else if(x>10){
    System.out.println("x是正数");
}else{
      System.out.println("x是0");
}

//条件后面带了分号
int y = 20;
if(y==10);{
      System.out.println("haha");
}
//运行结果  haha

(2)switch/case语句

  • switch中的值只能是整数、枚举、字符、字符串
  • switch中的每一个case都要有break;有break,只会执行其中一条,没有break,程序不会报错,但是会按照顺序结构继续往下执行
  • 建议每个switch后面带有default,如果没有与之匹配的case执行default语句,提示用户输入有误
  • switch不能表达复杂的条件,只根据单一的条件执行某个分支或者跳出来 支持嵌套,但一般不这样写,不美观
//没有break,顺序执行
double num = 1.0;
switch(num){
    case 1.0:
          System.out.println("haha");
          break;
    case 2.0:
          System.out.println("hehe");
          break;
}
//编译出错 Test.java:4: 错误:不兼容的类型: 从double转换到int可能会有损失
int day = 1;
switch(day){
    case 1:
          System.out.println("今天是星期一");
    case 2: 
          System.out.println("今天是星期二");
          break;
}
//运行结果
//今天是星期一
//今天是星期二

3、循环结构
(1)while循环

//打印1-10的数字
int num = 1;
while(num<=10){
    System.out.println(num);
    num++;
}

(2)for循环

for(int num = 1;num<=10;num++){
     System.out.println(num);
}

(3)do…while()循环

//打印1-10的数字
int num = 1;
do{
     System.out.println(num);
     num++;
}while(num<=10);

三种循环的条件都为布尔类型,建议写代码时都带上{},不易出错,对于while循环和for循环,如果直接在for或者while条件后面直接带分号,则条件为真执行空语句,需要注意,while和do…while(),do…while()无论条件为真为假都会执行一次语句,而while必须先判断条件,一般while和for用的较多。
4、break和continue
(1)break:结束循环,结束大循环,即退出循环
(2)continue:结束循环,结束本次循环,执行下次循环

//找到100-200中第一个3的倍数
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
     System.out.println("找到了 3 的倍数, 为:" + num);
     break;
}
num++;
}
//102

int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
    num++;
    continue;
}
 System.out.println("找到了 3 的倍数, 为:" + num);
}
//102

二、输入输出方式

1、输入方式
(1)读入一个字符:System.in.read();不过要和后面的异常搭配使用,否则编译会出错
(2)使用scanner读取

  • next();遇到空白符结束读取
  • nextLine();遇到换行符结束读取
  • nextInt();只会读整型数,不读取回车,并将光标放在该行,如果下条语句是nextLine();则读取不了数据,将换行读取后直接输出换行,如果还想继续读取,需要在nextInt后面加上nextLine,再继续用nextLine读取
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
int num = sc.nextInt();
String s = sc.nextLine();
System.out.println("OK");
//请输入一个数
//32
//OK


Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数");
int num = sc.nextInt();
String str = sc.nextLine();
System.out.println("请输入一个名字");
String s = sc.nextLine();
System.out.println("OK");
//请输入一个数
//54
//请输入一个名字
//张三
//OK在这里插入代码片

2、输出方式
(1)println():输出并且换行
(2)print():输出但不换行
(3)printf():格式化输出,类似于C语言

发布了32 篇原创文章 · 获赞 6 · 访问量 822

猜你喜欢

转载自blog.csdn.net/Beverly_/article/details/102884882