|
发表于 2021-3-21 06:24:31
|
显示全部楼层
本楼为最佳答案
- public static void main(String[] args) {
- System.out.println("是否是本校生:");
- // Scanner的参数是一般是输入流,会从控制台读取用户的输入流,题主这边用字符串作为参数
- // 系统会认为这个是系统的输入。
- // Scanner scanner = new Scanner("System.in");
- // 这为正确的写法
- Scanner scanner = new Scanner(System.in);
- // 后面读用户的输入不建议使用nextBoolean,用户的输入是无法确定,一旦输入的类型不是布尔类型的会抛异常
- // boolean isStudent =scanner.nextBoolean();
- // 建议用nextLine读取用户输入的一行进行判断
- String next = scanner.nextLine();
- /*
- * 首先!(感叹号)是单目运算,是用来否定当前的值,即 如果 boolean flag = true
- * 则 !flag == false
- * 另外在Java中if的条件判断中的值如果是boolean类型的话并不需要做任何的运算,因为其本身就是运算了
- *
- * 即 if(flag == true) 可以写为if(flag)
- * if(flag == false) 可以写为if(!flag)
- *
- * */
- // if(isStudent ! false) {
- // //!报错
- // System.out.println("允许入内");
- // }else {
- // System.out.println("不允许入内");
- // }
- // 针对题主的题目,我的想法是:
- boolean isStudent = scanner.nextLine().equals("是");
- if (isStudent) {
- System.out.println("允许入内");
- } else {
- System.out.println("不允许入内");
- }
- // 针对使用! 非运算符的计算:
- if (!isStudent) {
- System.out.println("不允许入内");
- } else {
- System.out.println("允许入内");
- }
- }
复制代码 |
|