小问题,既然编译器会忽略空格,为何某些时候空格、换行也会报错

例如以下会报错。

int a = 100
    00;

所以空格换行这些输入编译器其实都是有内置判断的是吗?

不知道你说的是什么编译器什么语言,如果是C#的话,那么标识符内部不能换行/空格。之间可以。

比如
int abc = 123;
其中 
int
abc
=
123
;
这些每个是一个整体,内部不可以分割。
你可以
int abc
= 123;
或者
int
abc = 123;
但是不能
int a
bc = 123;
或者int abc = 12
3;

你要知道,编程语言是英语为母语的人发明的,那么和英文一样,单词中间不能拆分,否则乱套了。
比如
nowhere,是一个单词,但是如果可以随意拆分,是now here还是no where?那不搞不清楚了么

忽略空格,换行是在你输入正确的前提下.比如
int a = 0;

int b = 10;
这样的忽略没问题

对了,字符串的空格,或者突然在一个空白行上打上很多空格符号,是有问题的!
尤其是PYTHON语言

C语言里面换行要加\

图片说明

如果你写成

int a = 
   10000;

是没有问题的,java语法中是合法的。
但是你写成

int a = 100
      00;
//or
int a = 100     00;

java语法无法解析100[空格][空格]00是什么东西,自然会报错,你可以在ide工具中查看错误信息。

图片说明

可见,这是个意外符号,也就是java基础中的,数字变量中是不能有空格的。