今天学习了if判断语句,卡在嵌套if好久都搞不明白,后来把语句的位置换了一下就实现了,属于是误打误撞了,对嵌套if还是很陌生,还得继续学习。
下面是知识点
package 流程控制;
?
import javax.print.DocFlavor;
import java.util.Scanner;
?
public class code1215 {
?
? ?public static void main(String[] args) {
? ? ? ?Scanner scanner = new Scanner(System.in);
?
? ? ? ?System.out.println("请输入内容");
? ? ? ?String a =scanner.nextLine();
?
? ? ? ?if (a.equals("hello")){//equals:判断字符串是否相等
? ? ? ? ? ?System.out.println(a);
?
? ? ? }
? ? ? ?System.out.println("End");
? ? ? ?scanner.close();
?
? ? ? ?/*if单选择结构
? ? ? ?* 语法为if(布尔表达式){}
? ? ? ?* 如果布尔表达式为true就执行语句,否则直接跳过
? ? ? ?* if默认等于true*/
?
package 流程控制;
?
import java.util.Scanner;
?
public class code12151 {
? ?public static void main(String[] args) {
? ? ? ?Scanner scanner=new Scanner(System.in);
?
? ? ? ?System.out.println("请输入成绩:");
? ? ? ?int a=scanner.nextInt();
?
? ? ? ?if (a>=60){
? ? ? ? ? ?System.out.println("及格");
?
? ? ? }
? ? ? ?else{
? ? ? ? ? ?System.out.println("不及格");
?
? ? ? ? ? ?scanner.close();
?
? ? ? ? ? ?/*if双选择结构
? ? ? ? ? ?* 语法为if(布尔表达式){}
? ? ? ? ? ?* 等于true则表达这个语句
? ? ? ? ? ?* else*(布尔表达式){}
? ? ? ? ? ?* 等于false则表达另一个语句 */
? ? ? }
? }
}
package 流程控制;
?
import java.util.Scanner;
?
public class code12152 {
? ?public static void main(String[] args) {
? ? ? ?Scanner scanner = new Scanner(System.in);
?
? ? ? ?System.out.println("请输入成绩:");
? ? ? ?int a = scanner.nextInt();
?
? ? ? ?if (a == 100) {
? ? ? ? ? ?System.out.println("恭喜满分");
?
? ? ? } else if (a < 100 && a >= 90) {
? ? ? ? ? ?System.out.println("A级");
? ? ? } else if (a < 90 && a >= 80) {
? ? ? ? ? ?System.out.println("B级");
? ? ? } else if (a < 80 && a >= 70) {
? ? ? ? ? ?System.out.println("C级");
? ? ? } else if (a < 70 && a >= 60) {
? ? ? ? ? ?System.out.println("D级");
? ? ? } else if (a < 60 && a >= 0) {
? ? ? ? ? ?System.out.println("不及格");
? ? ? } else{
? ? ? ? ? ?System.out.println("请输入合理范围的数字");
?
?
? ? ? ?scanner.close();
?
? ? ? ?/*if多选择结构
? ? ? ?* 语法为
? ? ? ?* if(布尔表达式1){}
? ? ? ?* 如果布尔表达式1的值为true执行代码
? ? ? ?* else if(布尔表达式2){}
? ? ? ?* 如果布尔表达式2的值为true执行代码
? ? ? ?* else if(布尔表达式3){}
? ? ? ?* 如果布尔表达式3的值为true执行代码
? ? ? ?* else {}
? ? ? ?* 如果以上布尔表达式都不为true执行代码
? ? ? ?* if语句里至多有一个else语句,且else语句在所有的else if语句之后
? ? ? ?* if语句可以有若干个else if语句,它们必须在else语句之前
? ? ? ?* 一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行*/
?
? ? ? }
?
? }
}
?
下面是自己写的嵌套if错误之前,一直找不到错误在哪,总是不执行其中一个分支。
package 流程控制;
?
import java.util.Scanner;
?
public class code12153 {
? ?public static void main(String[] args) {
? ? ? ?Scanner scanner=new Scanner(System.in);
?
? ? ? ?System.out.println("请输入:");
? ? ? ?int a=scanner.nextInt();
? ? ? ?String b=scanner.next();
?
?
?
?
? ? ? ?if (a <=100&&a>=90) {
? ? ? ? ? ?System.out.println("恭喜");
?
?
?
? ? ? ?if (b.equals("女")) {
? ? ? ? ? ? ? ?System.out.println("进入女子组决赛");
?
? ? ? ? ? }else {
? ? ? ? ? ? ? ?System.out.println("进入男子组决赛");
? ? ? ? ? }
?
? ? ? ? ? }else{
? ? ? ? ? ? ? ?System.out.println("淘汰");
?
? ? ? ? ? }
?
?
?
? ? ? ? ? ? ? ?scanner.close();
? ? ? ? ? }
? ? ? }
这是修改后的代码,可以实现我的需求。
package 流程控制;
?
import java.util.Scanner;
?
public class code12153 {
? ?public static void main(String[] args) {
? ? ? ?Scanner scanner=new Scanner(System.in);
?
? ? ? ?System.out.println("请输入:");
? ? ? ?int a=scanner.nextInt();
?
?
?
?
?
? ? ? ?if (a <=100&&a>=90) {
? ? ? ? ? ?System.out.println("恭喜");
?
? ? ? ? ? ?String b=scanner.next();
?
? ? ? ?if (b.equals("女")) {
? ? ? ? ? ? ? ?System.out.println("进入女子组决赛");
?
? ? ? ? ? }else {
? ? ? ? ? ? ? ?System.out.println("进入男子组决赛");
? ? ? ? ? }
?
? ? ? ? ? }else{
? ? ? ? ? ? ? ?System.out.println("淘汰");
?
? ? ? ? ? }
?
?
?
? ? ? ? ? ? ? ?scanner.close();
? ? ? ? ? }
? ? ? }
|